Вы здесь

Отправка SMS из Nagios

Возможно, Nagios и не лучшая система мониторинга.
Но, на мой взгляд, для дежурной службы вполне функциональная.
Единственная проблема, с которой мне пришлось столкнуться – отправка оповещений через SMS. Скурив Google и аналогичные ресурсы, я не нашел ничего внятного. Большинство администраторов либо вообще не используют данный тип оповещений, либо используют сторонние сервисы в интернет.

Motorola SLVR L7

Но встает вопрос, а что делать, если выйдет из строя центральный маршрутизатор и вместе с ни пропадет интернет?
На следующем этапе Google был скурен на предмет работы FreeBSD с мобильными телефонами. И это принесло желанное решение.
Для оповещения используется утилита gsmsendsms из состава gsmlib (порт /usr/ports/comms/gsmlib ).
Список поддерживаемых телефонов есть в документации на сайте автора.
От себя добавлю, что утилита работает практически со всеми телефонами имеющими встроенный модем. Обратите внимание!
Нужен именно «Встроенный модем» в разделе «Коммуникации», а не GPRS модем в разделе «Мобильный интернет» описания.
Я использую Motorola SLVR L7.

 

После инсталляции порта и подключения телефона, должно появиться новое устройство /dev/ttyU0. Для этого, в ядре должны быть включены устройства

device umodem
device ucom

Если устройство появилось, пробуем отправить SMS

gsmsendsms -d /dev/ttyU0 +7903******* «Send test SMS via My server»

Теперь, когда наш сервер успешно отправляет SMS, нужно настроить Nagios.
Для хранения номеров телефонов, я использую поле address1 в контактах и команды оповещения notify-by-sms – для сервисов и host-notify-by-sms для хостов:

define contact{
contact_name admin
……………
service_notification_commands notify-by-sms
host_notification_commands host-notify-by-sms
address1 +7903*******
}

Теперь, в файл commands.cfg, нужно добавить команды оповещения.

# ‘notify-by-sms’ command definition
define command{
command_name notify-by-sms
command_line /usr/local/bin/gsmsendsms -d /dev/ttyU0 $CONTACTADDRESS1$ «$NOTIFICATIONTYPE$: $SERVICEDESC$ for $HOSTNAME$ ($HOSTADDRESS$) is $SERVICESTATE$ ($SERVICEOUTPUT$) $SHORTDATETIME$»
}

# ‘host-notify-by-sms’ command definition
define command{
command_name host-notify-by-sms
command_line /usr/local/bin/gsmsendsms -d /dev/ttyU0 $CONTACTADDRESS1$ «$NOTIFICATIONTYPE$: $HOSTNAME$ ($HOSTADDRESS$) is $HOSTSTATE$ ($HOSTOUTPUT$) $SHORTDATETIME$»
}

Перегружаем Nagios

#/usr/local/etc/rc.d/nagios restart

Проверяем работоспособность любым из доступных способов, например, просто отключив сетевой кабель от сервера с Nagios (если на нем кроме Nagios не запущено чего либо критичного для компании Wink).

Примеры полученных SMS сообщений.

Категория: 
© 2009-2104 CTPAHHuK.RU