До недавнего времени для отправки уведомлений от системы мониторинга Nagios пользовался  SMS-шлюзами в интернете, например sms16.ru. Меня всё устраивало, за исключением того что при отсутствии интернета я бы об этом не узнал, по крайней мере от Nagios'a. Решение видится только одно: слать SMS через мобильного оператора.
В интернете довольно много информации по этому вопросу, самым простым мне показалось отправка программой gnokii через 3g-модем.
Нашёл старый Huawei e160g с надписью Билайн, вставил SIM карту мегафона и воткнул в комп.
lsusb выдал Bus 001 Device 010: ID 12d1:1003 Huawei Technologies Co., Ltd. E220 HSDPA Modem / E230/E270/E870 HSDPA/HSUPA Modem
Если верить этой статье ИЛИ если "Modem" нет, то нужны дополнительные манипуляции которые в этой статье и описаны.
Ставим gnokii:
sudo apt-get install gnokii
Лепим конфиг:
sudo mkdir /etc/gnokii
sudo nano /etc/gnokii/e160g
Вставляем:
В интернете довольно много информации по этому вопросу, самым простым мне показалось отправка программой gnokii через 3g-модем.
Нашёл старый Huawei e160g с надписью Билайн, вставил SIM карту мегафона и воткнул в комп.
lsusb выдал Bus 001 Device 010: ID 12d1:1003 Huawei Technologies Co., Ltd. E220 HSDPA Modem / E230/E270/E870 HSDPA/HSUPA Modem
Если верить этой статье ИЛИ если "Modem" нет, то нужны дополнительные манипуляции которые в этой статье и описаны.
Ставим gnokii:
sudo apt-get install gnokii
Лепим конфиг:
sudo mkdir /etc/gnokii
sudo nano /etc/gnokii/e160g
Вставляем:
[global]
        model = AT
        connection = serial
        port = /dev/ttyUSB0
Этих настроек для работы модема оказалось достаточно.
Проверка:
sudo gnokii --config /etc/gnokii/e160g --identify
Результат должен быть примерно таким:
GNOKII Version 0.6.31
IMEI         : 354300028632681
Manufacturer : huawei
No flags section in the config file.
Model        : E160G
Product name : E160G
Revision     : 11.604.21.01.161
Отправка  SMS-сообщения на номер +79225111711:
echo "hello world" |sudo /usr/bin/gnokii --config /etc/gnokii/e160g --sendsms '+79225111711'
Сообщение успешно пришло на телефон, дело практически сделано, осталось написать небольшой скрипт и вставить в Nagios.
Мой скрипт будет получать два аргумента от Nagios, первый - имя хоста и его состояние, второй - номер получателя.
sudo nano /usr/bin/gpsend
Вставляем:
#!/bin/sh
CONFIG="/etc/gnokii/e160g"
PIN=6523
echo "$PIN" | /usr/bin/gnokii --entersecuritycode PIN
echo "$1" | /usr/bin/sudo /usr/bin/gnokii --config="${CONFIG}" --sendsms "$2" >>/dev/null 
Даём права на исполнение:
sudo chmod +x /usr/bin/gpsend
Для того, что бы скрипту не нужен был пароль, нужно кое что сделать:
sudo visudo
В конец файла добавим:
ALL ALL=(ALL) NOPASSWD:/usr/bin/gnokii
Этот скрипт может нам пригодится и для других целей, попробуем что нибудь отправить:
gpsend hello +79222222222
Приступим к Nagios
Откроем файл /etc/nagios3/command.cfg
И добавим туда:
define command{
        command_name    sms
        command_line    /usr/bin/gpsend $HOSTNAME$-$HOSTSTATE$ $CONTACTPAGER$
        }
Впишем телефон в контакты, например:
define contact{
              contact_name                         svm
              alias                                SvM
              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
              host_notification_commands           sms
              email                                asdasd@gmail.com
              pager                                +79225111711
         }
В принципе можно было использовать что то отличное от page, список доступных параметров нагиоса можно посмотреть здесь.
Осталось перезапустить Nagios.
sudo service nagios3 reload
Все параметры gnokii можно посмотреть там: http://www.framasoft.net/IMG/aide.txt
 
еще мельче не мог написать?!
ОтветитьУдалить