使用Nagios监视ISC DHCP故障切换状态

我最近实现ISC DHCP故障转移,它的工作很好,但我想监视使用Nagios故障转移的当前状态。

最终,我想我的Nagios检查:

  • 当辅助DHCP服务器启动时报告警告 (由于主服务器的问题而开始服务地址)
  • 当小学和中学不活跃时报告一个关键
  • 不幸的是,监视dhcpd进程是否正在运行是不正确的解决scheme – 即使在dhcpd仍在运行时,故障切换状态也可以激活。

    从我研究的内容看来, dhcpd无法查询当前状态。 除了parsing日志文件,没有人知道干净的方式来确定dhcpd服务器当前是否处于故障转移状态?

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

    考虑到你已经正确configuration你的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探针应该很容易。

    你有没有考虑简单地检查协议,只是试图获得一个租约,而不使用dhclient -nconfiguration一个接口?

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

    从我能build立的,你将不得不使用omshell。 这是一个OMAPI调用的封装器,可用于与正在运行的DHCP服务器进行通信的API。 omshell通常包含在DHCP服务器软件包中(至less在我的Debian Linux机器上)。

    但是,它看起来不像omshell轻松接受input文件。 您可能需要尝试一点。

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

    听起来你需要Nagios 业务stream程智能(BPI)插件。 这使您可以监视一组服务并根据有多less个设置警报阈值。

    Shinken也有内置的这个function。

    您可以使用Nagios插件中的check_dhcp来监视DHCP – 它尝试从特定的服务器获取租约,并在不存在的情况下发出警报。 与BPI一起,你应该能够实现你所描述的。