将 nagios 通知设置配置为非常频繁

将 nagios 通知设置配置为非常频繁

我设置了一个包含三个节点的 Proxmox VE 集群。每个节点上都运行着多个虚拟机。我使用的是PVE 监控插件设置主机和服务,工作正常。

我的问题是 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 分钟发送一次该状态的重新检查。

这真的是最好的工作流程吗?或者还有其他更好的方法来安排通知并确认通知?

答案1

Nagios 仅在主机或服务进入“硬”状态时才发送电子邮件。从基本层面来回答您的问题 - 一旦主机或服务被检查了指定的次数,就会达到硬状态最大检查尝试次数。默认情况下,此值为 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 填充了代码中较高问题部分的详细信息,但似乎没有返回给您。

相关内容