欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

Nagios之邮件报警

程序员文章站 2022-07-01 08:40:35
Nagios之邮件报警。Nagios是一款开源的计算机系统和网络监视工具,能有效监控Windows、Linux主机的服务和状态,并且在系统异常时进行邮件报警,本文主要讲述实现邮件报警的操作过程...

Nagios之邮件报警。Nagios是一款开源的计算机系统和网络监视工具,能有效监控Windows、Linux主机的服务和状态,并且在系统异常时进行邮件报警,本文主要讲述实现邮件报警的操作过程,其它内容请参阅官方文档。
Nagios邮件报警的实现方式有很多种,在此仅以sendEmail为例(个人认为sendEmail是一款非常方便实用的免费软件,推荐大家使用)。
sendEmail下载地址:http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
备注:以下所有操作均在监控服务器上进行。
一安装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
        }