Nagios是一款开源的计算机系统和网络监视工具,能有效监控Windows、Linux主机的服务和状态,并且在系统异常时进行邮件报警,本文主要讲述实现邮件报警的操作过程,其它内容请参阅官方文档。
Nagios邮件报警的实现方式有很多种,在此仅以sendEmail为例(个人认为sendEmail是一款非常方便实用的免费软件,推荐大家使用)。
sendEmail下载地址:
备注:以下所有操作均在监控服务器上进行。
一 安装sendEmail:
tar -zxf sendEmail-v1.56.tar.gz
cd sendEmail-v1.56
mv sendEmail /usr/local/bin
chown nagios:nagios /usr/local/bin/sendEmail (nagios是安装nagios程序的用户)
邮件测试:
/usr/local/bin/sendEmail -f abc@sina.com -t 111111111@qq.com -s smtp.sina.com -u "ab" -xu abc -xp abcdefg -m abcdefgaaaaa
说明:
-f:指定邮件的发件人
-t:指定收件人
-s:指定邮件服务器
-u:发送邮件的主题
-xu:发件人的用户名
-xp:发件人的密码
-m:邮件要发送的内容(此项的内容在nagios配置文件通常被指定)
二 修改命令配置文件:
vim commands.cfg
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/local/bin/sendEmail -o fqdn=FQDN -f abc@sina.com -t 111111111@qq.com -s smtp.sina.com -u "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" -xu abc -xp abcdefg
}
以上配置当服务异常时会发邮件
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/local/bin/sendEmail -o fqdn=FQDN -f abc@sina.com -t 111111111@qq.com -s smtp.sina.com -u "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" -xu abc -xp abcdefg
}
以上配置当主机宕机时发邮件
三 修改主机配置文件(我为每台被监控端单独设置了配置文件,如有其它主机或服务要实现邮件报警,可按如下模板配置,其优先级会高于templates.cfg文件)
define service{
use generic-service
host_name www
service_description Mysql
check_command check_nrpe!check_my
notifications_enabled 1
contact_groups admins
max_check_attempts 3
normal_check_interval 2
retry_check_interval 2
check_period 24x7
notification_interval 3
notification_period 24x7
notification_options w,u,c,r
}
--------------------------------------分割线 --------------------------------------
在Ubuntu下配置Mrtg监控Nginx和服务器系统资源