nagios 不發送通知郵件
Nagios 沒有為我的服務發送通知。我在 nagios localhost 中有兩個名為 PING 和 STATUS 的服務。
PING 服務使用 ping 命令檢查主機可用性,而 STATUS 服務從遠端機器獲取 SNMP 陷阱。
有時我收到 PING 服務的電子郵件,但 STATUS 服務沒有收到任何郵件。PING 服務也不總是發送郵件。在我所有的配置文件下面。
本地主機.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 }
聯繫人.cfg
define contact{ contact_name nagiosadmin use generic-contact alias Nagios Admin email mymail@gmail.com } define contactgroup{ contactgroup_name admins alias Nagios Administrators members nagiosadmin }
我使用 ssmtp 郵件伺服器發送郵件。下面的配置文件
ssmtp.conf
root=mymail@gmail.com mailhub=smtp.gmail.com:587 rewriteDomain=gmail.com hostname=sujin UseTLS=YES UseSTARTTLS=YES AuthMethod=LOGIN AuthUser=mymail@gmail.com AuthPass=mailpassword FromLineOverride=YES
您收到 PING 的電子郵件是因為您似乎已將電子郵件通知命令 (
mailtest
) 用作check_command
:define service{ use local-service host_name TESTHOST service_description PING check_command mailtest ; <<< notifications_enabled 1 }
check_command
for通常PING
是一個check_ping
命令對象。發送通知的命令是contact
對象的屬性。您沒有為 啟用活動檢查
STATUS
,因此 Nagios 永遠不會為該服務安排檢查(它將依賴 NRPE 或 NRDP 或其他一些外部程序)。這可能不是你想要的。您似乎沒有
contact_groups
與您的服務或主機對象相關聯。但是,您添加的配置實際上只是整個配置的一部分,您沒有顯示預設對像模板,所以我不能說繼承了什麼。您似乎無法理解 Nagios 對像模型,它更接近於程式而不是配置。這裡的圖表應該可以幫助您理解這個問題(它有點老,對於 Nagios 2,但它是一個很好的起點)。
Nagios 文件準確但非常簡潔(或簡潔),不適合從頭開始學習,請嘗試本教程:http ://users.telenet.be/mydotcom/howto/nagios/index.html
一旦您對對象概念有了更好的理解,您就可以查看
objects.cache
文件並查看所有已完全定義的對象(這相當於 Web UI 中的配置視圖,但如果您直接編輯配置文件則更容易理解) .