В последнее время цены на SMS увеличились в два или три раза почти на всех шлюзах и стало накладно использовать их для отправки SMS-уведомлений от Nagios, особенно если в день приходит иногда по сотне сообщений. Относительно недавно обнаружил необычный сервис отправки sms.ru, который предлагает бесплатную отправку сообщений, с тем лишь условием, что SMS будут приходить только на один номер телефона. Сначала было подозрительно, но попользовавшись им около 3 месяцев могу сказать, что работает всё просто отлично. Задержки по времени почти такие же как у всех, но при этом гораздо дешевле.
Естественно услуги sms.ru не ограничиваются отправкой SMS на один номер, в системе присутствуют все необходимые средства для массовых рассылок на различные номера с различными параметрами и естественно буквенные отправители.
У сервиса есть API и примеры реализации для нескольких языков программирования, удобный, понятны и богатый функционалом личный кабинет и даже партнёрская программа.
В общем, рекомендую!
Итак, как прикрутить к Nagios. А всё просто до идиотизма:
в /etc/nagios3/commands.cfg объявляем команды которые будут отсылать сообщения.
Первый блок для узлов, второй для сервисов, впрочем извратиться можно по разному, я думаю так проще.
define command{
command_name sms-smsru
command_line wget -qO- --spider "http://sms.ru/sms/send?api_id= &text=$HOSTNAME$%20is%20$HOSTSTATE$&to=$_CONTACTPHONE$"
}
define command{
command_name sms-smsru-service
command_line wget -qO- --spider "http://sms.ru/sms/send?api_id= &text=$HOSTNAME$%20$SERVICEDESC$%20is%20$SERVICESTATE$&to=$_CONTACTPHONE$"
}
Естественно услуги sms.ru не ограничиваются отправкой SMS на один номер, в системе присутствуют все необходимые средства для массовых рассылок на различные номера с различными параметрами и естественно буквенные отправители.
У сервиса есть API и примеры реализации для нескольких языков программирования, удобный, понятны и богатый функционалом личный кабинет и даже партнёрская программа.
В общем, рекомендую!
Итак, как прикрутить к Nagios. А всё просто до идиотизма:
в /etc/nagios3/commands.cfg объявляем команды которые будут отсылать сообщения.
Первый блок для узлов, второй для сервисов, впрочем извратиться можно по разному, я думаю так проще.
define command{
command_name sms-smsru
command_line wget -qO- --spider "http://sms.ru/sms/send?api_id=
}
define command{
command_name sms-smsru-service
command_line wget -qO- --spider "http://sms.ru/sms/send?api_id=
}
Смысл я думаю всем ясен, при помощи wget мы делаем GET-запрос к сервису, что бы ничего не скачивалось и не отображалось, добавлены параметры -qO- и --spider.В тексте отправляем имя узла и что с ним стряслось. Кто не в курсе %20 - пробел.
Теперь в файле, где описываются контакты (/etc/nagios3/conf.d/contacts_nagios2.cfg) пропишем какие команды нужно выполнять, когда, что то происходит на подконтрольных узлах. Контакту который добровольно согласился получать кучу sms нужно добавить дополнительный параметр _phone в который запишем его телефон. Если пользователь один, можно записать сразу в строку запроса, но всё же я думаю удобней прописать в описание контакта, мало ли где ещё может понадобится этот номер.
Немного отойду от темы. В Nagios в описание контакта можно прописывать свои дополнительные параметры, их название следует начинать с "_", а затем с ним обращаться как $_CONTACT<ваш параметр>$ Таким образом у меня например назначен jabber для некоторых контактов.
Теперь прописываем нужную команду, пример для узлов:
host_notification_commands sms-smsru
Общая картина должна выглядеть примерно так:
define contact {
contact_name VPypkin
alias Vasiliy Pupkin
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands sms-smsru-service
host_notification_commands sms-smsru
email myemail@example.com
_phone 79000000000
}
Осталось перезагрузить Nagios и попробовать.
sudo service nagios3 reload
А проверить можно, что нибудь сломав, или починив, ну или нажав "Send custom host notification" в web-интерфейсе.
Всем удачи.
Комментариев нет :
Отправить комментарий