[QUOTE]
Артемий Зайцев написал:
[CODE] Munin - http://адрес_сервера/munin/:
логин: admin
пароль: muninBitrixMon
Nagios - http://адрес_сервера/nagios/:
логин: nagiosadmin
пароль: nagiosBitrixMon
[/CODE]
Здорово. Где настраивается email, куда nagios будет отправлять письма об ошибках в пятой версии?
Как имитировать ошибку, чтобы проверить, как нагиос пришлет письмо?
На BitrixEnv 4.2 работало. На BitrixEnv 4.3 не работало, даже когда место полностью заканчивалось на диске. Теперь у меня естественный вопрос к инструменту: как проверить?[/QUOTE]
Если еще интересно как это сделать, то примерно так:
1. В [B]/etc/nagios/objects/contacts.cfg[/B] меняем параметр [B]email[/B], куда будет отправляться нотификация:
[CODE]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 ******
}
[/CODE]
Можно создать новый контакт, но не забудьте прописать его в CONTACT GROUPS в этом же файле ниже.
2. Далее в [B]/etc/nagios/objects/commands.cfg[/B] меняем строки в секции SAMPLE NOTIFICATION COMMANDS запуска mta на:
[CODE]# '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$
} [/CODE]
где
--host=hostname (адрес smtp-хоста)
--port=number (номер smtp-порта)
--user=username (логин для авторизации на smtp-сервере)
--passwordeval=eval (пароль для авторизации на smtp-сервере)
--from=mailfrom@email.com (от кого будет уходить письмо)
Также можно настроить дополнительные ключи msmtp (tls-опции и др.) либо вообще сократить до хоста\порта и from-адреса, если у smtp-сервера нет авторизации, а список всех ключей msmtp можно глянуть командой:
[CODE]# msmtp --help[/CODE]
3. Обязательно сделать рестарт Nagios для применения настроек:
[CODE]# service nagios restart[/CODE]
Т.е, по сути, из дефолтного конфига Nagios-а мы меняем mta с mail на msmtp c ключами и немного модифицируем текст сообщения: т.к у msmtp нет ключа "Subject:" (Тема сообщения) - мы его включаем в тело письма, оно при получении почтовым клиентом отпарсится как надо.
Проверить работу нотификаций можно, например, остановив Мysql:
[CODE]# service mysqld stop[/CODE]
По умолчанию Nagios будет сыпать в лог 3 CRITICAL\SOFT сообщения каждую минуту, 4-му сообщению даст статус CRITICAL\HARD и инициирует notify-service-by-email, который отдаст текст сообщения и отправит его через msmtp c ключами, настроенными выше. Т.е в течение 4-5 минут сообщение должно уйти на почту примерно такого содержания:
---------
[B]Тема письма:[/B]
** PROBLEM Service Alert: test1/MySQL: connection to 3306 is CRITICAL **
[B]Текст письма:[/B]
***** 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.
[B]BitrixVM 5.0.46[/B]