温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Nagios达到阈值时发不出告警邮件问题总结

发布时间:2020-06-17 01:41:39 来源:网络 阅读:1585 作者:877035666 栏目:移动开发

Nagios 达到阈值时 ,不发告警邮件问题总结:


 
1、首先检查nrpe或定义service时,阈值有没有定义正确

 
2、下面这一点很重要,就是检查 /etc/hosts中是不是这样的形式写的:
                192.168.80.12      主机名  主机名.com         (这里的”主机名.com“其实就是指的domain name)     
    例如我的: 192.168.80.12       compute2    compute2.com

 
    不然/var/log/mail.log日志会报”May 23 15:40:01 compute2 sm-msp-queue[11606]: My       unqualified host name (test-compute2) unknown; sleeping for retry
May 23 15:40:01 compute2 sendmail[11385]: unable to qualify my own domain name (test- compute2) -- using short name“ 就是找不到domain name的原因

 
3、先手动测试,如果执行:
      mail  -s  ”this is a test mail“    zhao.wei@eisoo.com
      可以正常收到,说明mail命令是没有问题的
      
小说明:
      mail.log日志报错解决方法:
     ① 报”May 23 15:40:01 compute2 sm-msp-queue[11606]: My       unqualified host name (test-compute2) unknown; sleeping for retry
May 23 15:40:01 compute2 sendmail[11385]: unable to qualify my own domain name (test- compute2) -- using short name“
    
          这个说明 /etc/hosts中没有定义domain name ,我的domain name 就是” compute2.com “
          所以要在 /etc/hosts中定义domain name
      ② 报”May 25 12:06:01 compute2 sendmail[14133]: q4P4614o014133: to=hao.chuang@eisoo.com, ctladdr=nagios (1002/1002), delay=00:00:00, xdelay=00:00:0
0, mailer=relay, pri=30501, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (q4P461QV014134 Message accepted for delivery)“
 
         这个说明邮件消息已经发向邮件服务器了( stat=Sent),但是收件人并没有收到,可能没有解析到,所以是DNS的问题,我就在这里耽误了好长时间,后来才知道。 
         因为可能大多人在/etc/resolv.conf中定义的都是公司内部使用的DNS,如192.168.1.1 ,可能在解析时会出问题,后来我使用公网上的一个 DNS 地址202.96.209.5,终于可以收到邮件了。
        所以正常mail 日志应该是
”May 25 12:52:57 compute2 sm-mta[20290]: q4P461vk014150: to=<zhao.wei@eisoo.com>, delay=00:46:56, xdelay=00:00:02, mailer=esmtp, pri=300729, r
elay=mx2.qiye.163.com. [123.125.50.214], dsn=2.0.0, stat=Sent (Mail OK queued as mx4,QNOowEDJq0opEL9Ptv0SAA--.4314S2 1337921579)

 
4、最后就是在commond中定义发告警邮件的commond line :
  
host 主机告警commond:
define command{
command_name notify-host-by-email
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTAT
E$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n"  
 | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAM
E$ is $HOSTSTATE$ **" $CONTACTEMAIL$
}

 

 
service主机告警commond:
define command{
command_name notify-service-by-email
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $H
OSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
}

 
  好了,如果像这样都定义好了,发邮件应该就没问题了。

 

 

 

 

 

 

 

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI