目前nagios只能在浏览器上查看各个机器各个服务的状态,当某个机器宕掉或者某个服务宕掉时,我们是不知道的,因为我们不可能时时盯着服务看。这时,就需要用到告警系统了,让它自动化,当发现问题时及时通知我们。下面配置使用发邮件的方式来实现告警。

在服务端操作!

首先定义邮件接受者。

[root@localhost~]#vim/etc/nagios/objects/contacts.cfgdefinecontact{contact_nametest1usegeneric-contactaliasemail1emailtest1@163.com}definecontact{contact_nametest2usegeneric-contactaliasemail2emailtest2@163.com}definecontactgroup{contactgroup_namecommonaliascommonmemberstest1,test2}

说明:contact.cfg 里面既可以定义user也可以定义group,先定义两个user test1和test2,然后把这两个user加入到common组里面。发邮件时就发给common组就可以了,这时test1@163.com和test2@163.com都会收到邮件。

然后在需要告警的服务里加上contactgroup

[root@localhost~]#vim/etc/nagios/conf.d/192.168.56.128.cfg

针对check_load服务增加告警配置

defineservice{usegeneric-servicehost_name192.168.56.128service_descriptioncheck_loadcheck_commandcheck_nrpe!check_loadmax_check_attempts5normal_check_interval1contact_groupscommonnotifications_enabled1notification_period24x7notification_optionsw,u,c,r}

说明:notifications_enabled 1 表示是否开启提醒功能。1 为开启,0 为禁用。一般,这个选项会在主配置文件(nagios.cfg)中定义,效果相同。notification_period 24x7 表示发送提醒的时间段。如果不在定义的时间段内,无论什么问题都不会发送提醒。notification_options:w,u,c,r 表示service的状态。w 为 warning,u 为unknown,c 为critical,r 为recovery。类似的还有一个host对应的状态:d,u,r,f,n。 d 状态表示DOWN,u 为UNREACHABLE,r 状态恢复为 OK,f 为flapping,n 为不发送提醒。需要加入到 host 的定义配置里生效。

编辑完配置文件后,重启nagios服务

[root@localhost~]#servicenagiosrestartRunningconfigurationcheck...done.Stoppingnagios:done.Startingnagios:done.