# 2012-09-10 13:09:50: [Debian] Настройка E-mail и SMS оповещений Nagios Core

И так, у нас есть настроенный Nagios core, теперь нужно научить его делиться информацией с администраторами.

Начнем с простого, обычные почтовые оповещения.
Подрозумеваем, что у нас ОС установлена со стандарными пакетами без X11, соответственно exim4 настроен только на localhost - отправляет и получает почту сам на себя.
Такой расклад для Nagios не пойдет, мы сидим в сети предприятия у нас есть почтовая система, вот ей мы и будем пользоваться как релеем.

1. Для изменения конфигурации exim4 запускаем:

:$ sudo dpkg-reconfigure exim4
В появившемся окне выбираем "mail sent by smart host; no local mail"

Далее заполняем необходимые поля, такие как system mail name, listen ip (127.0.0.1), ну и самое главное это ip релея через который мы будем отправлять почту.
ВАЖНО: ваша почтовая система должна разрешать для сервера Nagios пересылку почты
После выполнения кофигурации exim, проверим отправку почты:
:$ echo "TEST" | mail -s "SUBJECT:TEST" any_mail@domain.ru
С нотификацией по e-mail все...

2.SMS оповещение

ЖЕЛЕЗО.
Как же без него! на практике устанавливал два варианта :). 1-ый - обычный сотовый телефон, хотя нет не совсем обычный: в телефоне должен быть модем, подключаться он должен по USB. Года два-три назад в продаже я нашел один такой и имя ему sony ericsson k530i. 2-ой вариант - USB GSM-модем - вот его мы и поставим
Я использую купленый у МТС huawei E1550.
Модем просто вставляем в USB и проверяем в системе нашу железяку:
:# lsusb
У меня выглядит так:
    Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 001 Device 002: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
:# dmesg | grep attached
    usb 1-3: GSM modem (1-port) converter now attached to ttyUSB0
    usb 1-3: GSM modem (1-port) converter now attached to ttyUSB1
    usb 1-3: GSM modem (1-port) converter now attached to ttyUSB2
Тут мы собственно видим, где нам в дальнейшем искать наше устройствo для демона smsd.
 
БАБЛО (материалная составляющая)
СМСки стоят денег, а Nagios по умолчанию шлет их много :), так как в темплейтах (/usr/local/nagios/etc/objects/templates.cfg) установлена опция: notification_interval 30 (30 - это время в минутах). Тем самым Nagios отсылает каждые 30 минут уведомление о проблемном хосте либо сервисе. Для экономии рубликов, данную опцию лучше установить со значением 0, тогда уведомления не будут повторяться.
 
СОФТ
Для оповещения по СМС будем использовать SMS Server Tools 3 [http://smstools3.kekekasvi.com/]. Текущая версия 3.1.14
:# cd ~/distrib
:# wget http://smstools3.kekekasvi.com/packages/smstools3-3.1.14.tar.gz
:# tar -xzf smstools3-3.1.14.tar.gz
:# cd smstools3-3.1.14
:# make
:# make install
Файл конфигурации демона smsd находится в /etc/smsd.conf, его необходимо поправить: указать где искать модем, а также прописать строку инициализации. Примерный конфиг:
 
    # Example smsd.conf. Read the manual for a description devices = huaweiE1550
     
    checked = /var/spool/sms/checked
    incoming = /var/spool/sms/incoming
    failed = /var/spool/sms/failed
    stats = /var/spool/sms/stats
     
    logfile = /var/log/smsd.log
    loglevel = 7
    receive_before_send = no
    status_signal_quality = yes
    stats_interval = 60
    status_interval = 60
     
    [huaweiE1550]
    device = /dev/ttyUSB0 # - модем в системе
    rtscts = no
    baudrate = 115200 #скорость порта
    incoming = yes # директива разрешающая "складывать" на сервер входящие сообщения
    incoming = high
    pin = XXXX # ПИН КОД SIM карты, если установлен указывать обязательно!
    init = AT+CPMS="SM","SM","" # Строка инициализации
    memory_start = 0
    check_memory_method=31
    smsc=+7XXXXXXXXXX # НОМЕР SMS ЦЕНТРА МОБИЛЬНОГО ОПЕРАТОРА
Запускаем демона:
:# /etc/init.d/sms3 start
Проверяем работу на отправку SMS:
:# sendsms 7XXXXXXXXXX "TEST"
Если все настроено и установленно верно, то в течении нескольких секуд на указаный мобильный придет сообщение.
 

3. Дружим Nagios и SMS Tools

Для того что бы Nagios отправлял SMS, необходимо создать команды в файле /usr/local/nagios/etc/objects/commands.cfg, для сервисов и хостов:
    #HOST NOTIFY SMS
    define command {
    command_name notify-host-by-sms
    command_line /usr/local/bin/sendsms $CONTACTPAGER$
    "$NOTIFICATIONTYPE$ alert - Host $HOSTNAME$ is $HOSTSTATE$ $LONGDATETIME$"
    }
     
    #SERVICE NOTIFY SMS
    define command {
    command_name notify-service-by-sms
    command_line /usr/local/bin/sendsms $CONTACTPAGER$
    "Service: $SERVICEDESC$ Host: $HOSTNAME$ Address: $HOSTADDRESS$ State:
    $SERVICESTATE$ Info: $SERVICEOUTPUT$ Date: $LONGDATETIME$"
    }
И остается последний штрих, добавить в темплейт (/usr/local/nagios/etc/objects/templates.cfg) контактов команду нотификации (полностью группа контакта по умолчанию):
    define contact{
    name generic-contact
    service_notification_period 24x7
    host_notification_period 24x7
    service_notification_options w,c,r
    host_notification_options d,r
    service_notification_commands notify-service-by-email,notify-service-by-sms
    host_notification_commands notify-host-by-email,notify-host-by-sms
    register 0
    }
На этом все.