【问题标题】:Nagios: check multiple services simultaneously?Nagios:同时检查多个服务?
【发布时间】:2021-03-06 20:45:30
【问题描述】:

我刚刚开始使用 Nagios 来监控一组广播发射器。每个发射器都被定义为一个主机,而我希望监控的发射器的每个方面(RF 正向、RF 反射、电源电压等)都被定义为一项服务。这样做时,如果这些方面中的任何一个超出容差范围,我都会收到警报,并且可以使用性能数据来绘制每个方面的图表(在本例中使用 pnp4nagios)。

为了检查发射器的遥测数据,我编写了一些脚本,用于解决所涉及的每个品牌/型号的发射器的独特设施。与我看到的其他 Nagios 检查的工作方式保持一致,脚本的参数允许您选择要报告的方面。

起初我对此很满意。它就像我遇到的任何更传统的 Nagios 用法一样工作。但后来我遇到了障碍。

由于每个服务检查都是单独安排的,因此诊断警报条件可能会很棘手,因为不同的服务不会同时被检查 - 因此我正在查看的一组值不太可能是时间-对齐。如果所有服务检查值都来自同一时刻,则更容易检测相关性(因为这组值本质上是一个快照)。

我的第一个想法是通过运行单个命令的单个实例来处理这个问题,这将返回多个服务的值。这似乎也比打开与要检查的服务一样多的连接实例更有效。从脚本的角度来看,这很容易做到。但从 Nagios 配置的角度来看,我不知道您会如何(或是否?)这样做。

我知道我也可以将数据收集与 Nagios 检查分离,定期一次性缓存遥测值,并从缓存中提供 Nagios 值。但如果我能提供帮助,我不想引入额外的延迟。

想法?

【问题讨论】:

  • 经过一些额外的阅读,我正在考虑被动地提交服务数据。它将解决我提到的所有问题。但它会创建一些小的新进程——现在有外部进程可以继续运行,而且它有点超出主流的做事方式(可能会让未来的管理员有点痛苦来弄清楚它是如何工作的)。一如既往,我愿意接受建议!

标签: nagios


【解决方案1】:

我的第一个想法是通过运行单个命令的单个实例来处理这个问题,这将返回多个服务的值。这似乎也比打开与要检查的服务一样多的连接实例更有效。从脚本的角度来看,这很容易做到。但从 Nagios 配置的角度来看,我不知道您会如何(或是否?)这样做。

从 Nagios 的角度来看,这没有什么奇怪的,因为您实际上所做的是编写自己的插件,插件可以是通用的或特定的,只要您希望它们是。

在编写自己的插件时,请记住:

  • 您的脚本应对所有失败负责,因此请确保您处理垃圾响应、失败的连接以及您预测的插件本身可能发生的任何其他错误,并以适当的错误级别退出。
  • 由于您可能会遇到意料之外的错误,因此让插件将其正在执行的操作以及收到的响应写入日志文件可能是有意义的。
  • 插件必须使用退出代码来正确警告 Nagios。如果您需要性能数据,则需要以正确的语法给出。请参阅development guidelines

我正在考虑被动提交服务数据。它将解决我提到的所有问题。但它会创建一些小的新进程 - 现在有外部进程可以继续运行,而且它有点超出主流的做事方式(可能会让未来的管理员有点痛苦地弄清楚它是如何工作的)。

我认为这不是比编写自己的插件更好的解决方案,除非数据来自主动将其推出的节点。

例如,在 IoT 环境中,您正在监控的节点实际上可能正在将被动检查结果直接发送到 Nagios 实例。在这种情况下,被动检查是有意义的,因为您只想接受别人给您的任何东西并采取行动以防万一没有结果(新鲜度)。

在您的情况下,听起来编写您自己的脚本会同时处理时间问题以及您希望在脚本中添加的任何其他逻辑,并且就 Nagios 而言,它应该只按计划运行并观看退出代码,如果失败则按照配置执行。

【讨论】:

  • 我实际上是从一开始就编写了自己的插件,所以我可以使用任何/所有选项,只需选择正确的选项即可。就主动检查而言,让我陷入困境的是,我不知道如何通过一次运行单个命令同时更新多个服务。示例:有一次我正在追查一个问题,结果证明是间歇性电源问题。一个电源上的电压会下降,发射器的射频输出也会下降——如果您看到这两个问题同时发生,这很容易诊断。 (1/3)
  • 在 Nagios,我有 RF 输出服务和电源电压服务(等等)。但是这些服务是异步更新的。因此,从 Nagios 看来,确凿的证据——这两项服务同时超出了容忍范围——不太可能出现。每个服务的检查调用相同的脚本,但使用不同的参数,导致脚本仅检索和报告被检查服务所需的值。 (2/3)
  • 理想情况下,我会调用该脚本一次,并同时更新所有服务,提供所有值的同步快照,这可能比在较长时间内一次检查它们更有用. (3/3)
  • 编写一个通过冠运行并提交被动结果的插件也可以。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多