使用 Nagios 监控 ISC DHCP 故障转移状态

使用 Nagios 监控 ISC DHCP 故障转移状态

我最近实现了 ISC DHCP 故障转移,它运行良好,但我想使用 Nagios 监控故障转移的当前状态。

最后,我希望我的 Nagios 检查:

  • 举报警告当辅助 DHCP 服务器启动时(由于主 DHCP 服务器出现问题而开始提供地址)
  • 举报批判的当主服务器和辅服务器均不活跃时。
  • 不幸的是,监控dhcpd进程是否正在运行并不是真正的解决方案——即使dhcpd仍在运行时,故障转移状态也可能激活。

    根据我的研究,似乎dhcpd无法查询当前状态。除了解析日志文件之外,有人知道一种干净的方法来确定服务器dhcpd当前是否处于故障转移状态吗?

    答案1

    为了监控故障转移设置,我将使用 OMAPI 命令(例如通过 omshell)来检查故障转移状态对象的状态。

    考虑到您已正确配置 dhcpd 服务器以启用 OMAPI 访问,您可以使用以下命令:

    $ cat check-failover.cmd <<EOF
    server localhost
    port 7911
    key omapi_key <KEY>
    connect
    new failover-state
    set name = "<FAILOVER NAME>"
    open
    EOF
    

    然后像这样使用它:

    $ omshell < check-failover.cmd | grep state
    partner-state = 00:00:00:02
    local-state = 00:00:00:02
    

    状态是一个整数,其值在 dhcpd.8 手册页中描述(1 表示“启动”,2 表示“正常”,等等)。

    从这里编写 Nagios/Shinken 探测器应该相当容易。

    答案2

    您是否考虑过简单地检查协议并尝试获取租约而不使用 dhclient -n 配置接口?

    您可以通过检查 dhclient 打印到 stderr 的提供租约的服务器的 IP 地址来区分主服务器和辅助服务器。

    答案3

    据我所知,您必须使用 omshell。这是 OMAPI 调用的包装器,该 API 可用于与正在运行的 DHCP 服务器进行通信。omshell 通常包含在 dhcp 服务器包中(至少在我的 Debian Linux 机器上是这样的)。

    但是,omshell 似乎不能轻易接受输入文件。你可能需要进行一些实验。

    一旦 omshell 运行,您将需要在 nagios 中执行远程 shell 命令来运行 omshell 并将结果返回到 nagios 服务器。

    答案4

    听起来你需要 Nagios业务流程智能(BPI)附加组件。这允许您监视一组服务并根据启动的服务数量设置警报阈值。

    新剑也内置有此功能。

    check_dhcp您可以使用Nagios 插件监控 DHCP——它会尝试从特定服务器获取租约,如果没有,则会发出警报。结合 BPI,您应该能够实现您所描述的目标。

    相关内容