Тривиальное смс-оповещение при недоступности сервера-оборудования

в 13:40, , рубрики: ит-инфраструктура, Серверное администрирование, системное администрирование

Со многими моими коллегами (системными администраторами, да наверное и не только) случалось так, что при отключении электропитанияаппаратном сбоепрограммное сбое — о недоступности того или иного сервисасервера узнавали от недовольного начальстванедовольных коллег.
Чтобы как-то решить проблему того, что я узнаю о проблеме в инфраструктуре от коллег, стало необходимым сделать смс-оповещение.
Наверняка есть какие-то уже готовые решения, может быть какие-то платные, аппаратные и т.п… В данной статье речь пойдёт о простом и банальном решении — и так я начну описание.

Дано:
1) Компьютер Windows на борту с портом RS-232 (COM-порт);
2) GSM-модем Siemens MC35i(нынче называется Cinterion) с портом RS-232 с антенной и блоком питания;
3) Кабель RS-232;
4) Сим-карта любого оператора;
5) ПО nncron;
6) ПО NHSMS

Задача:
В случае недоступности сервераустройстваИнтернета по сети получасть смс-сообщение с указанием его названия.

Решение:
1) Сначала был подключен модем к компьютеру — настроен как обычный модем со скоростью порта 115200 битсек;
2) Далее было найдено и протестировано ПО, которое через командную строку (cmdbat) отправляет смски — NHSMS (ссылка выше);
3) Затем необходимо было как-то обнаруживать события после которых нужно было задействовать, написанные cmd-файлы на отправку сообщений. Нам здесь помог nncron (ссылка выше) с его скриптами.

Cкрипт nncron можно настроить через его форму настройки:
image
image

По итогам настройки формируется файл nncron.tab. Находится он корневом каталоге приложения и выглядит так:

#( OMEGA-inet
Time: */5 * * * * *
Rule: HOST-EXIST: «8.8.8.8» NOT
Action:
StartIn: «C:soft»
ShowNormal NormalPriority
START-APP: C:softOMEGA-inet.cmd
)#

#( OMEGA-AV01
Time: */5 * * * * *
Rule: HOST-EXIST: «OMEGA-AV01» NOT
Action:
StartIn: «C:soft»
ShowNormal NormalPriority
START-APP: C:softOMEGA-AV01.cmd
)#

#( OMEGA-MX6
Time: */5 * * * * *
Rule: HOST-EXIST: «OMEGA-MX6» NOT
Action:
StartIn: «C:soft»
ShowNormal NormalPriority
START-APP: C:softOMEGA-MX6.cmd
)#

#( OMEGA-OFFICE
Time: */5 * * * * *
Rule: HOST-EXIST: «OFFICE» NOT
Action:
StartIn: «C:soft»
ShowNormal NormalPriority
START-APP: C:softOMEGA-office.cmd
)#

Смысл его прост — сервер пингуется по NS-имени каждые 5 минут (значение можно поменять, но если что-то отвалится,, если пинга нет, то срабатывает cmd-файл. Тоже самое относится
Сами cmd-файлы содержат сообщение для отправления смс (для каждого сервера свой cmd-файл, чтобы проще искать и редактировать):

nhsmscl.exe -COM:1 -smsc:79168999100 -phone:79639666666 -esc: Server OMEGA-MX6 is down.
echo off
echo %* >>in-sms.log

где «Server OMEGA-MX6 is down.» — это сообщение, которые приходит на телефон (по-русски у меня так и не получилось научить писать программу — возможно связано с кодировкой cmd-файла, да это и не важно).

Собственно как выглядит сам модем (вдруг кто не видел):
image

Ну и как результат
image

Отмечу:
1) при отключении самого компьютера с модемом ничего не произойдет — на такой случай, как вариант, можно сделать второй компьютер с модемом, который будет опрашивать первый компьютер на доступность, но нужно ли это в условиях малого офиса;
2) nncron имеет также функцию опроса по порту — так что можно настроить к примеру опрос значимых TCP-портов и в случае обвала сервиса — будет также приходить смс;
3) питание компьютера с модемом желательно запитать отдельным персональным бесперебойником — в случае отказа основного ИБП — компьютер с модемом будет защищен.

Всем мира и добра!

Автор: iGLaX6

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js