nagios不发送通知邮件

Nagios不为我的服务发送通知。 我在nagios localhost中有两个叫做PING和STATUS的服务。

PING服务检查主机可用性使用ping命令和STATUS服务从远程机器获取SNMP陷阱。

有时我收到电子邮件PING服务,但状态服务没有得到任何邮件。 PING服务也不总是发送邮件。 在我所有的configuration文件下面。

localhost.cfg

define host{ use linux-server host_name TESTHOST alias snmp_agent address 10.10.62.5 } define service{ use local-service host_name TESTHOST service_description PING check_command mailtest notifications_enabled 1 } define service{ host_name TESTHOST service_description STATUS is_volatile 1 check_freshness 1 check_command cagent!5 max_check_attempts 4 normal_check_interval 1 retry_check_interval 1 active_checks_enabled 0 passive_checks_enabled 1 check_period 24x7 notification_interval 20 notification_period 24x7 notification_options w,u,c notifications_enabled 1 flap_detection_enabled 0 } 

contacts.cfg

 define contact{ contact_name nagiosadmin use generic-contact alias Nagios Admin email [email protected] } define contactgroup{ contactgroup_name admins alias Nagios Administrators members nagiosadmin } 

我使用ssmtp邮件服务器发送邮件。 下面的configuration文件

ssmtp.conf

 [email protected] mailhub=smtp.gmail.com:587 rewriteDomain=gmail.com hostname=sujin UseTLS=YES UseSTARTTLS=YES AuthMethod=LOGIN [email protected] AuthPass=mailpassword FromLineOverride=YES 

您正在收到PING的电子邮件,因为您似乎已将您的电子邮件通知命令( check_command )用作check_command

 define service{ use local-service host_name TESTHOST service_description PING check_command mailtest ; <<< notifications_enabled 1 } 

PINGcheck_command通常是一个check_ping命令对象。 发送通知的命令是contact对象的属性。

您没有为STATUS启用主动检查,所以Nagios永远不会为该服务安排检查(它将依赖于NRPE或NRDP或其他外部进程)。 这可能不是你想要的。

您似乎没有将任何联系人组与您的服务或主机对象相关联。 但是,您添加的configuration实际上只是整个configuration的一部分 ,您没有显示默认对象模板,所以我不能说什么已经被inheritance。

您似乎无法理解Nagios对象模型,它比编程更接近编程。 这里的图表应该可以帮助你理解这个问题(这有点旧了,对于Nagios 2来说,这是一个很好的起点)。

Nagios文档是准确的,但相当简洁(或简洁),从零开始学习并不好,请尝试以下教程: http : //users.telenet.be/mydotcom/howto/nagios/index.html

一旦你对对象概念有了更好的理解,你可以窥探objects.cache文件,并看到所有你定义完全的对象(这相当于Web UI中的configuration视图,但是如果你正在编辑configuration文件直接)。