Цитата | ||
---|---|---|
Артемий Зайцев написал:
Здорово. Где настраивается email, куда nagios будет отправлять письма об ошибках в пятой версии? Как имитировать ошибку, чтобы проверить, как нагиос пришлет письмо? На BitrixEnv 4.2 работало. На BitrixEnv 4.3 не работало, даже когда место полностью заканчивалось на диске. Теперь у меня естественный вопрос к инструменту: как проверить? |
Если еще интересно как это сделать, то примерно так:
1. В /etc/nagios/objects/contacts.cfg меняем параметр email, куда будет отправляться нотификация:
Код |
---|
define contact{ contact_name nagiosadmin ; Short name of user use generic-contact ; Inherit default values from generic-contact template (defined above) alias Nagios Admin ; Full name of user email email@myaddress.com ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ****** } |
Можно создать новый контакт, но не забудьте прописать его в CONTACT GROUPS в этом же файле ниже.
2. Далее в /etc/nagios/objects/commands.cfg меняем строки в секции SAMPLE NOTIFICATION COMMANDS запуска mta на:
Код |
---|
# 'notify-host-by-email' command definition define command{ command_name notify-host-by-email command_line /usr/bin/printf "%b" "Subject: ** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **\n\n ***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/bin/msmtp --host=hostname --port=number --user=username --passwordeval=eval --from=mailfrom@email.com $CONTACTEMAIL$ } # 'notify-service-by-email' command definition define command{ command_name notify-service-by-email command_line /usr/bin/printf "%b" "Subject: ** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **\n\n ***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | /usr/bin/msmtp --host=hostname --port=number --user=username --passwordeval=eval --from=mailfrom@email.com $CONTACTEMAIL$ } |
где
--host=hostname (адрес smtp-хоста)
--port=number (номер smtp-порта)
--user=username (логин для авторизации на smtp-сервере)
--passwordeval=eval (пароль для авторизации на smtp-сервере)
--from=mailfrom@email.com (от кого будет уходить письмо)
Также можно настроить дополнительные ключи msmtp (tls-опции и др.) либо вообще сократить до хоста\порта и from-адреса, если у smtp-сервера нет авторизации, а список всех ключей msmtp можно глянуть командой:
Код |
---|
# msmtp --help |
3. Обязательно сделать рестарт Nagios для применения настроек:
Код |
---|
# service nagios restart |
Т.е, по сути, из дефолтного конфига Nagios-а мы меняем mta с mail на msmtp c ключами и немного модифицируем текст сообщения: т.к у msmtp нет ключа "Subject:" (Тема сообщения) - мы его включаем в тело письма, оно при получении почтовым клиентом отпарсится как надо.
Проверить работу нотификаций можно, например, остановив Мysql:
Код |
---|
# service mysqld stop |
По умолчанию Nagios будет сыпать в лог 3 CRITICAL\SOFT сообщения каждую минуту, 4-му сообщению даст статус CRITICAL\HARD и инициирует notify-service-by-email, который отдаст текст сообщения и отправит его через msmtp c ключами, настроенными выше. Т.е в течение 4-5 минут сообщение должно уйти на почту примерно такого содержания:
---------
Тема письма:
** PROBLEM Service Alert: test1/MySQL: connection to 3306 is CRITICAL **
Текст письма:
***** Nagios *****
Notification Type: PROBLEM
Service: MySQL: connection to 3306
Host: test1
Address: 192.168.2.70
State: CRITICAL
Date/Time: Thu Dec 11 19:08:10 MSK 2014
Additional Info:
Connection refused
--------
Можно заставить отправлять msmtp с помощью профилей из конфига .msmtprc, но, возможно, понадобится поиграться с правами доступа nagios.
BitrixVM 5.0.46