У нас есть четыре сервера для критически важных приложений, которым требуется постоянное соединение друг с другом - всего шесть постоянно работающих соединений. Мне нужен способ отслеживать эти соединения и запускать, по крайней мере, электронное письмо, когда одно из них выходит из строя. Я могу найти централизованные решения, но ничего, что действительно подходит под этот счет. Какие-либо предложения?
РЕДАКТИРОВАТЬ: пошел дальше и раскатал свой на Ruby. Однако Nagios выглядит неплохим комплектом - в противном случае я бы пошел с ним.
Как и MarkM, я собирался порекомендовать Nagios, но я думаю, вам нужно более тщательно спланировать, что вы на самом деле измеряете. Я ожидал, что с 4 эквивалентными узлами задействовано 12 подключений (ab, ac, ad, ba, bc, bd, ca, cb, cd, da, bd, dc), если некоторые из подключений не являются двунаправленными (?) .
Вполне возможно использовать Nagios для определения активных проверок, которые должны выполняться через определенные промежутки времени, или для того, чтобы демон ждал получения уведомления о статусе (в данном случае неудачная связь от инициирующего сервера) и даже для запуска некоторой автоматической обработки ответа (например, перезапуск сбойного процесса веб-сервера). Но вам нужно подумать о том, как вы справляетесь со сценариями раздвоения мозга.
Вы можете запустить демон Nagios на выделенном сервере или на одном или любом количестве узлов в кластере, но будьте осторожны с запуском автоматических ответов с нескольких узлов мониторинга одновременно.
С.
Nagios это открытый исходный код, бесплатный, кроссплатформенный и надежный.
Если все, что вам нужно, - это электронное письмо, когда один сервер не может подключиться к другому, и вы в порядке с самой быстрой минутной частотой, это может быть так же просто, как написать быстрый скрипт (на VBScript или PowerShell), который пингует другой хост (или проверяет конкретный порт в зависимости от ваших приложений) и отправляет вам электронное письмо, если он не может подключиться.
Вот это некоторый образец кода от Microsoft о том, как пинговать через VBScript и некоторые о том, как отправить электронное письмо с помощью объекта CDO.
В PowerShell вы можете использовать объект System.Net.NetworkInformation.Ping.
После того, как у вас есть сценарий, все, что вам нужно сделать, это запланировать ежедневную частоту выполнения задачи с повторением в одну минуту.
Очевидно, это хорошо, только если сервер, который не может подключиться, может получить доступ к вашему почтовому серверу, чтобы отправить вам электронное письмо.