I have в problem with automatically mail notification in Нахиос Коре 4 installed on Ubuntu 12.04 LTS (Я нуждался в Чешуйчатом муравьеде) server...
I have tried to send mail with the nagios user and root user with the command:
echo "test" | mail -s "test mail" support@xxxx.eu
And I received the mail correctly... But I don't receive any automatically mail notification. How хан I resolve this issue?
These пахал my configuration поля (commands.cfg
, contacts.cfg
, nagios.log
, mail.log
):
(The path/usr/bin/mail is the right path)
# 'notify-host-by-email' command definition
define command{
command_name notify-host-by-email
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
}
# 'notify-service-by-email' command definition
define command{
command_name notify-service-by-email
command_line /usr/bin/printf "%b" "***** 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/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
}
# 'process-host-perfdata' command definition
define command{
command_name process-host-perfdata
command_line /usr/bin/printf "%b" "$LASTHOSTCHECK$\t$HOSTNAME$\t$HOSTSTATE$\t$HOSTATTEMPT$\t$HOSTSTATETYPE$\t$HOSTEXECUTIONTIME$\t$HOSTOUTPUT$\t$HOSTPERFDATA$\n" >> /usr/local/nagios/var/host-perfdata.out
}
# 'process-service-perfdata' command definition
define command{
command_name process-service-perfdata
command_line /usr/bin/printf "%b" "$LASTSERVICECHECK$\t$HOSTNAME$\t$SERVICEDESC$\t$SERVICESTATE$\t$SERVICEATTEMPT$\t$SERVICESTATETYPE$\t$SERVICEEXECUTIONTIME$\t$SERVICELATENCY$\t$SERVICEOUTPUT$\t$SERVICEPERFDATA$\n" >> /usr/local/nagios/var/service-perfdata.out
}
define contact{
contact_name supporto
alias Supporto Clienti DEA
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,r
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
email supporto@xxxx.eu
}
define contactgroup{
contactgroup_name admins
alias Nagios Administrators
members supporto
}
[1401871412] SERVICE ALERT: fileserver;Current Users;OK;SOFT;2;USERS OK - 1 users currently logged in
[1401871953] SERVICE ALERT: backups;Nagios Status;WARNING;SOFT;1;NAGIOS WARNING: 36 processes, status log updated 541 seconds ago
[1401872133] SERVICE ALERT: backups;Nagios Status;OK;SOFT;2;NAGIOS OK: 36 processes, status log updated 180 seconds ago
[1401872321] SERVICE ALERT: posta;Swap Usage;CRITICAL;SOFT;1;CRITICAL - Plugin timed out after 10 seconds
[1401872322] SERVICE ALERT: fileserver;Current Users;CRITICAL;SOFT;1;CRITICAL - Plugin timed out after 10 seconds
[1401872420] SERVICE ALERT: archivio;Disk Space;CRITICAL;SOFT;1;CRITICAL - Plugin timed out after 10 seconds
[1401872492] SERVICE ALERT: fileserver;Current Users;OK;SOFT;2;USERS OK - 1 users currently logged in
[1401872492] SERVICE ALERT: posta;Swap Usage;OK;SOFT;2;SWAP OK: 100% free (1984 MB out of 1984 MB)
[1401872590] SERVICE ALERT: archivio;Disk Space;OK;SOFT;2;DISK OK
[1401872931] Auto-save of retention data completed successfully.
[1401873333] SERVICE ALERT: backups;Nagios Status;WARNING;SOFT;1;NAGIOS WARNING: 36 processes, status log updated 402 seconds ago
[1401873513] SERVICE ALERT: backups;Nagios Status;OK;SOFT;2;NAGIOS OK: 36 processes, status log updated 180 seconds ago
(I think that the problem is here, but I don't know how to resolve it.)
Jun 4 10:00:01 backups sm-msp-queue[6109]: My unqualified host name (backups) unknown; sleeping for retry
Jun 4 10:01:01 backups sm-msp-queue[6109]: unable to qualify my own domain name (backups) -- using short name
Jun 4 10:20:01 backups sm-msp-queue[7247]: My unqualified host name (backups) unknown; sleeping for retry
Jun 4 10:21:01 backups sm-msp-queue[7247]: unable to qualify my own domain name (backups) -- using short name
Jun 4 10:40:01 backups sm-msp-queue[8327]: My unqualified host name (backups) unknown; sleeping for retry
Jun 4 10:41:01 backups sm-msp-queue[8327]: unable to qualify my own domain name (backups) -- using short name
Jun 4 11:00:01 backups sm-msp-queue[9549]: My unqualified host name (backups) unknown; sleeping for retry
Jun 4 11:01:01 backups sm-msp-queue[9549]: unable to qualify my own domain name (backups) -- using short name
Jun 4 11:20:01 backups sm-msp-queue[10678]: My unqualified host name (backups) unknown; sleeping for retry
Jun 4 11:21:01 backups sm-msp-queue[10678]: unable to qualify my own domain name (backups) -- using short name
гm at the last step, and I want to finish this Нахиос Коре! :)
Host definition (this host существуешь the disk almost full, and it is in hard state but нечетное число notification):
define host{
use generic-host ; Name of host template to use
host_name posta
alias Server Posta ESA
address 10.10.2.102
parents xen1, xen2
icon_image redhat.png
statusmap_image redhat.gd2
}
Service definition:
define service{
use generic-service
host_name xen1, maestro, xen2, posta, nas002, serv2, esasrvmi02, esaubuntumi
service_description Disk Space
check_command ssh_all_disks!10%!5%
}
Notification is allowed for the contact definition you gave, but is it also allowed at the the service level?
Sorry, but I don't understand this thing! :(
От Вашего nagios.log
я вижу только ошибки Состояния наибольшей уязвимости. Nagios не отправляет уведомления за Состоянием наибольшей уязвимости, только в случае ТВЕРДОГО состояния. Из документации Nagios:
Состояния наибольшей уязвимости
Состояния наибольшей уязвимости происходят для сервисов и хостов в следующих ситуациях...
1), Когда сервис или хост проверяют результаты в состояние неOK и это еще не было (ре), проверил количество раз, указанное опцией в определении хоста или сервисе. Давайте назовем это состоянием исправимой ошибки...
2), Когда сервис или хост восстанавливаются с состояния исправимой ошибки. Это считается мягким восстановлением.
События Состояния наибольшей уязвимости
, Что происходит, когда сервис или хост находятся в состоянии исправимой ошибки или испытывают мягкое> восстановление?
1) исправимая ошибка или восстановление зарегистрированы при включении log_service_retries или log_host_retries опций в основном конфигурационном файле.
2) Обработчики событий выполняются (при определении кого-либо) обрабатывать исправимую ошибку или восстановление для сервиса или хоста. (Прежде чем любой обработчик событий будет выполнен, макрос $STATETYPE$ установлен на "МЯГКИЙ"). Nagios не отсылает уведомления никаким контактам, потому что существует (или был), никакая "реальная" проблема с сервисом или хостом.
Как видно, единственной важной вещью, которая действительно происходит во время состояния наибольшей уязвимости, является выполнение обработчиков событий. Используя обработчики событий может быть особенно полезным, если Вы хотите попытаться заранее решить проблему, прежде чем она превратится в твердое состояние.
Твердые состояния
Твердые состояния происходят для хостов и сервисов в следующих ситуациях:
1), Когда хост или сервис регистрируют результаты НЕ или нехорошо указывают и это было (ре), проверил количество раз, указанное max_check_attempts опцией в сервисном определении или хосте. Это - состояние серьезной ошибки.
2), Когда хост или сервисные переходы от одной серьезной ошибки указывают другому состоянию ошибки (например, Предупреждение КРИТИЧЕСКОМУ).
3) то, Когда сервисная проверка приводит к состоянию неOK и его соответствующему хосту, или ВНИЗ или НЕДОСТИЖИМО.
4), Когда хост или сервис восстанавливаются с состояния серьезной ошибки. Это считается трудным восстановлением.
5), Когда пассивный чек хоста получен. Пассивные проверки хоста рассматривают как ТРУДНО, если passive_host_checks_are_soft опция не включена.
следующие вещи происходят, когда хосты или сервисы испытывают ТРУДНЫЕ изменения состояния:
1) ТВЕРДОЕ состояние зарегистрировано. 2) Обработчики событий выполняются для обработки ТВЕРДОГО состояния. 3) Контакты являются notifified хоста или сервисной проблемы или восстановления.
Так от того, что мы видим в журнале, что Вы даете в примере, не было никакой потребности в Nagios для отправки почты. Необходимо создать состояние ошибки на одном из контролируемых сервисов, позволить этому условию, существует некоторое время, и посмотрите, получаете ли Вы действительно почту, когда состояние изменяется на ТРУДНО в nagios.log.
Последняя вещь, которую я заметил в Вашем тесте командной строки, Вы отправляете почту в support@xxxx.eu
, в то время как в Вашем contacts.cfg почтовый определенный адрес supporto@xxxx.eu
(возможно, у Вас есть псевдонимы, определенные на Ваших почтовых серверах, возможно, не).
Добавленный после добавления журналов к вопросу В nagios.log
, что Вы показываете, нет никакого СЕРВИСНАЯ строка УВЕДОМЛЕНИЯ , поэтому даже когда ошибка находится в ТВЕРДОМ состоянии, Nagios даже не пытается сделать уведомление. Чтобы иметь уведомление, работающее в Nagios, не достаточно иметь контакты, группы контактов и четко определенные команды уведомления. Необходимо настроить на сервис и хост, если Вы хотите отправить уведомление в случае ошибки и конечно к который контакт (контакты) и / или группа (группы) контактов для отправки этого уведомления. Например, это - сервисное определение с настроенным уведомлением и работа:
define service {
name generic-service
first_notification_delay 0
notification_interval 0
notification_options w,u,c,r
notifications_enabled 1
check_period 24x7
notification_period 24x7
contact_groups admins
}
В вышеупомянутом определении, notification_enabled
установлен на 1 (верный) и группа контактов, как дали для отправки уведомления. Кроме того, мы определяем который вид уведомления отправить - w (arning), u (nknown), c (ritical) и r (экоочень).
вышеупомянутое определение используется в качестве шаблона всеми моими сервисами:
use generic-service
присутствует во всех моих сервисных определениях. Таким образом, если я должен изменить опции уведомления, я просто, должен измениться generic-service
определение. В Вашем случае Ваша конфигурация показывает, что Ваш сервис использует шаблон, названный generic-service
. Я был бы совет проверить его определение, чтобы видеть, настроено ли уведомление как пример, я дал выше. Его определение может быть расположено в файл, названный services-templates.cfg
, но это может варьироваться.
Спасибо Бенуа для Вашего ответа. Я хотел бы добавить несколько вещей после игры с ним некоторое время:
Легкий знать, где Вы стоите со всеми теми шаблонами и отвергаете, если Вы рассматриваете файл тайника, который является вычисленным результатом всех конфигураций:/usr/local/nagios/var/objects.cache
После того, как я был там этим, поразил меня.. мое обслуживание собиралось послать уведомления только в часы работы, которые закончились немного неправильное при мне, потому что я нахожусь на другом часовом поясе по сравнению с сервером. Изменение его к 24x7 заставило все это работать как очарование.
я надеюсь, что это поможет кому-то.. Проведенные часы, понимая все это.
За Ваше здоровье!