• 云途科技成立于2010年 - 专注全球跨境电商服务器租赁托管!
  • 帮助中心

    您可以通过下方搜索框快速查找您想知道的问题

    nagios 邮件报警配置

      in  unix      Tags: 

    nagios最主要优点就是在于它的报警功能,下面讲解一下用nagios来发邮件警告。

    一,配置contacts.cfg

    vim /etc/nagios/objects/contacts.cfg
    
    define contact{                   //30行
            contact_name                    nagiosadmin
            use                             generic-contact
            alias                           Nagios Admin
            email                           [email protected]     //这里改成自己的邮箱
            }

    二,配置nagios.cfg和localhost.cfg

    vim /etc/nagios/nagios.cfg 
    
    enable_notifications=1                //807行,开启报警
    
    上面的总的开启也就是nagios装的所有插件,出现问题都会报警
    
    vim /etc/nagios/objects/localhost.cfg 
    
    define service{                   //以processes为例
            use                             local-service         ; Name of service template to use
            host_name                       localhost
            service_description             Total Processes
            check_command                   check_local_procs!250!400!RSZDT
            notifications_enabled           1
            }

    如果总的没有开启的话,localhost.cfg里面可以一个一个配置,这样比较麻烦。如果总的开启了,里面有些不想开启就可以notifications_enabled设置成0这样,这个就不用发报警,其他的发报警。

    三,添加发报警用户

    [root@localhost objects]# cyradm -u cyrus localhost --auth plain
    verify error:num=18:self signed certificate
    Password:
    IMAP Password:
    localhost> cm nagios
    localhost> quit

    为什么要添加一个邮件用户nagios呢?可以看一下nagios发邮件的配置文件commands.cfg

    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" | /bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **"
        $CONTACTEMAIL$
            }

    从上面/bin/mail我们可以看出,它是用了系统mail命令来发邮件的,并且没有指定用户,发邮件时会当前的默认用户,nagios的启动用户默认是nagios,可以在主配置nagios.cfg的123行找到nagios_user=nagios,所以要加一个nagios邮件用户,当然你可以把启动用户改掉。

    四,重启动一下nagios

    /etc/init.d/nagios restart

    五,测试nagios是不是可以发邮件

    如果服务器一切正常,当然是不会发报警邮件的,但是重起肯定会发邮件的。重启一下看看是不是能收到邮件。如果收不到邮件,是什么原因呢?您可以按照以下几步来排查。

    1,查看邮件服务器是不是启动了,nagios服务器和客户端是不是启动了。你可以通过netstat,或者ps去查。

    2,如果都已经正常启动的话,手动敲命令来发封邮件是不是能收到,因为nagios也是调用了mail命令来发邮件的,确保这一步是通的,收件方是能收到邮件的。例如:

    mail -s '看一下' [email protected]  < /etc/imapd.conf

    3,如果用mail命令来发邮件能收到邮件,而nagios发的报警邮件还是收不到怎么办呢。这种情比较郁闷,并且我遇到了。查看一下mail的log日志文件/var/log/maillog,我当时用的是qq邮箱来收邮件的,发现qq的邮件服务器会拒绝。看下图

    qq拒绝nagios的报警邮件

    qq拒绝nagios的报警邮件

    拒绝也不是全部拒绝,能收到邮件,但是延迟比较严重。建议不要用qq邮箱来收邮件。

    qq收到的nagios报警邮件

    qq收到的nagios报警邮件



    • 外贸虚拟主机

      1GB硬盘

      2个独立站点

      1000M带宽

      不限制流量

      美国外贸专用虚拟主机,cPanel面板,每天远程备份.
      服务器配置:2*E5 32核,96GB 内存,4*2TB 硬盘 RAID10 阵列.

      ¥180/年

    • 美国/荷兰外贸VPS

      2核CPU

      1G内存

      30硬盘

      10M带宽

      美国/荷兰外贸云服务器,专注外贸服务器行业12年.
      服务器配置:2*E5 32核,96GB 内存,4*2TB 硬盘 RAID10 阵列.

      ¥99/月

    • 全球外贸服务器

      8核CPU

      32G内存

      1TB硬盘

      1000M带宽

      已部署数据中心:美国洛杉矶/亚特兰大、荷兰、加拿大、英国伦敦、德国、拉脱维亚、瑞典、爱沙尼亚
      自有机柜(全球九大数据中心),稳定在线率:99.9%

      ¥999/月 原价1380

    7*24小时 在线提交工单

    如果您的问题没有得到解决,推荐您在线提交工单,我们的客服人员会第一时间为您解决问题

    展开