> CentOS > CentOS运维 >

CentOS-Nagios 外网邮件报警

1.安装 sendEmail
参照:http://blog.sina.com.cn/s/blog_5f54f0be0101cbvw.html
 
2.配置发邮件命令
编辑 /usr/local/nagios/etc/objects/commands.cfg
在里面添加:
 
define command{
command_name notify-service-by-sendmail
command_line /usr/local/bin/sendEmail -f test@163.com -t $CONTACTEMAIL$ -s smtp.163.com -u "$HOSTALIAS$/$SERVICEDESC$ Report" -xu test -xp test -m "$HOSTADDRESS$ $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$"
}
 
define command{
command_name notify-host-by-sendmail
command_line /usr/local/bin/sendEmail -f test@163.com -t $CONTACTEMAIL$ -s smtp.163.com -u "$HOSTALIAS$ Report" -xu test -xp test -m "$HOSTADDRESS$ $HOSTALIAS$ is something wrong on $DATETIMES$: $HOSTSTATE$"
}
 
这里定义了两个命令,分别用于在主机异常和服务异常时发邮件。
发邮件的命令就是前面安装 sendEmail 后的测试命令.只不过内容换成了警告内容。内容中有些 nagios 提供的全局变量。但要注意的是,如果要使用这些变量,外面括号必须用双引号,如果直接写一段文字,可以用单引号.
 
3.配置联系人信息
修改 /usr/local/nagios/etc/objects/contacts.cfg .添加/修改联系人内容如下:
 
define contact{
        name                            allday    
        service_notification_period     24x7 ; 服务监控报警的时间段
        host_notification_period        24x7 ; 主机监控报警时间段
        service_notification_options    w,u,c,r ; 服务报警的级别
        host_notification_options       d,u,r ; 主机报警的级别
        service_notification_commands   notify-service-by-sendmail ; 服务报警的命令.前面定义的 commond
        host_notification_commands      notify-host-by-sendmail ; 主机报警的命令.
}
上面报警级别的含义:
w: warn 即警告状态
u: unknown 表示不明状态
c: criticle 表示紧急状态
r: recover 表示恢复状态
d:down 表示宕机
 
define contact{
        contact_name                    nagiosadmin1
        use                             allday ;
        alias                           Nagios Admin1 ;
 
        email                           test1@test.cn ; <<***** 前面的 $HOSTADDRESS$ ******
}
define contact{
        contact_name                    nagiosadmin2
        use                             allday ;
        alias                           Nagios Admin2 ;
 
        email                           test2@test.cn ; <<***** 前面的 $HOSTADDRESS$ ******
}
联系人 email 可以写多个,多个之间用逗号分隔开
define contactgroup{
        contactgroup_name       admins
        alias                   Nagios Administrators
        members                 nagiosadmin1, nagiosadmin2
        }
 
4.重启 nagios
尝试关闭一些服务看效果。
提示:nagios 默认会给组: admins 发邮件提醒.



(责任编辑:IT)