Описание задачиЧасто приходится проверять доступность серверов BNComplex посредством доступности определенных портов сервера, отвечающих за необходимые службы. При этом, большинство серверов предусматривает работу в режиме 24 часа.
Для этого можно использовать утилиту telnet, входящую в состав windows. Большую часть времени с серверами все в порядке, однако периодичность проверки и круглосуточный режим ее выполнения просто сам по себе "нарывается" на автоматизацию.
И так, задача видится примерно так:
1. Проверить доступность сервера | Проверить, что порты доступны, или еще как | 2. Информировать администраторов о проблемах: | В зависимости от критичности ситуации информирование можно разделить на "оперативное" и "информационное" | 2.1. Информирование посредством email - выслать лог проверок. | Информирование посредством e-mail достаточно "медленный" способ, однако позволяет передать больше данных - "информационное сообщение" | 2.2. СМС - в случае ситуаций, требующих быстрого решения. | СМС дойдет до адреса быстрее, однако будет содержать только основную информацию, следует применять только в купе с e-mail - "оперативное информирование" | 3. Вести журналы работы | Логи работы позволят на этапе настройки проверить все ли нормально, отследить в последующем | 4. Задержка в информировании. | Проблема может быть вызвана недоступностью службы, например, по причине перезагрузки сервера. Поэтому обычно требуется какое-то количество неудачных попыток проверки подряд, прежде чем выдавать пользователю сообщение. | 5. Отделить проблемы проверяющего сервера от проверяемого | Следует предположить, что проверка не проходит потому, что проблемы локальные - например отсутствие сети.
| 6. Средства настройки основных параметров работы скрипта | Дабы упростить использование скрипта и запуск его в эксплуатацию, данный скрипт должен иметь простое средство настройки, например посредством ini-файлов | 7. Запускаться в расписании | Проверка должна проходить периодически, в автоматическом режиме |
РешениеНа данный момент стоят 2-е задачи: 1. Проверить, что с сервером есть связь посредством команды ping 2. Проверить, что службы слушают определенные порты.
Для решения второй задачи я нашел утилиту PortQry от microsof
Осталось только сделать оболочку, которая бы запускала проверку автоматически, и если несколько проверок подряд дают ошибку отправляла бы сообщение. Для сообщения я решил использовать электронную почту, и отправку SMS через google Calendar
Скрипт отправляет и то и другое. Отправка СМС выполняется отдельным cmd файлов (sendSMS_google.cmd) посредством вызова google_sms.vbs с передачей имени пользователи и пароля.
Весь комплекс запускается посредством porttest.vbs (добавьте данный скрипт в проверку в назначенные задания). Если порт не доступен, то он проверяется порядка 20 секунд, потому на 5 портов (все недоступны) будете иметь 100 секунд - потому скрипт не рекомендуется запускать слишком часто. Настройка выполняется в porttest.ini. Описание параметров приводится там же. Вообщем, читай те комментарии Пример рабочий, за исключением того что заменен адрес сервера на 127.0.0.1 и заменены пароли на строку password
|