Email
將 nagios 通知設置配置為非常頻繁
我已經建立了一個具有三個節點的 Proxmox VE 集群。每個節點都執行著許多虛擬機。我正在使用PVE Monitor 外掛來設置主機和服務,效果很好。
我的問題是 Nagios 的電子郵件發送行為有點奇怪。理想情況下,我希望每分鐘檢查一次節點以及每個節點上執行的所有服務。
我的配置文件如下所示:
# Define the cluster itself as a host # the command check_pve_cluster_nodes give us info # on the member's cluster state define host { host_name pve-cluster max_check_attempts 10 check_command check_pve_cluster_nodes contact_groups admins check_interval 1 contact_groups admins notifications_enabled 1 } # define openvz, qemu and storages as services of the cluster define service{ use generic-service host_name pve-cluster service_description OpenVZ VMs check_command check_pve_cluster_openvz check_interval 1 contact_groups admins notifications_enabled 1 } define service{ use generic-service host_name pve-cluster service_description Qemu VMs check_command check_pve_cluster_qemu check_interval 1 contact_groups admins notifications_enabled 1 } define service{ use generic-service host_name pve-cluster service_description Storages check_command check_pve_cluster_storage check_interval 1 contact_groups admins notifications_enabled 1 }
我沒有更改時間單位設置,所以應該每分鐘檢查一次。Nagios Web UI 顯示主機離線,但電子郵件通知僅在幾分鐘後發送。此外,電子郵件內容缺少最重要的資訊——哪個節點/服務處於臨界狀態:
節點關閉
***** Nagios ***** Notification Type: PROBLEM Host: pve-cluster State: DOWN Address: pve-cluster Info: NODES CRITICAL 2 / 3 working nodes Date/Time: Fri Mar 6 10:48:25 CET 2015
虛擬機停機
***** Nagios ***** Notification Type: PROBLEM Service: Qemu VMs Host: pve-cluster Address: pve-cluster State: CRITICAL Date/Time: Fri Mar 6 10:40:44 CET 2015 Additional Info: QEMU CRITICAL 2 / 3 working VMs
如何設置配置,以便以一分鐘的間隔檢查主機和服務(即虛擬機)?理想情況下,應在此之後每隔 15 分鐘發送一次對該狀態的重新檢查。
這甚至是最好的工作流程嗎?還是有另一種更好的方式來安排通知並確認通知?
Nagios 僅在主機或服務進入“硬”狀態後才會發送電子郵件。在基本層面上回答您的問題 - 一旦主機或服務被檢查了max_check_attempts指定的次數,就會達到硬狀態。預設情況下,這是 4。
有關軟/硬狀態的資訊:http : //nagios.sourceforge.net/docs/3_0/statetypes.html 有關 max_check_attempts 的資訊:http ://nagios.sourceforge.net/docs/3_0/objectdefinitions.html
看起來該外掛絕對打算提供退貨詳細資訊,但無論出於何種原因,它都不是。不幸的是,我沒有環境來測試這個,所以我可能不得不讓你掛在這部分問題上。
perl 的相關部分:
print "NODES $rstatus{$statusScore} $workingNodes / " . scalar(@monitoredNodes) . " working nodes" . $br . $reportSummary;
print "STORAGE $rstatus{$statusScore} $workingStorages / " . scalar(@monitoredStorages) . " working storages" . $br . $reportSummary;
print "OPENVZ $rstatus{$statusScore} $workingVms / " . scalar(@monitoredOpenvz) . " working VMs" . $br . $reportSummary;
print "QEMU $rstatus{$statusScore} $workingVms / " . scalar(@monitoredQemus) . " working VMs" . $br . $reportSummary;
$reportSummary 填充了程式碼中較高問題部分的詳細資訊,但似乎沒有為您返回。