【发布时间】:2021-03-06 20:45:30
【问题描述】:
我刚刚开始使用 Nagios 来监控一组广播发射器。每个发射器都被定义为一个主机,而我希望监控的发射器的每个方面(RF 正向、RF 反射、电源电压等)都被定义为一项服务。这样做时,如果这些方面中的任何一个超出容差范围,我都会收到警报,并且可以使用性能数据来绘制每个方面的图表(在本例中使用 pnp4nagios)。
为了检查发射器的遥测数据,我编写了一些脚本,用于解决所涉及的每个品牌/型号的发射器的独特设施。与我看到的其他 Nagios 检查的工作方式保持一致,脚本的参数允许您选择要报告的方面。
起初我对此很满意。它就像我遇到的任何更传统的 Nagios 用法一样工作。但后来我遇到了障碍。
由于每个服务检查都是单独安排的,因此诊断警报条件可能会很棘手,因为不同的服务不会同时被检查 - 因此我正在查看的一组值不太可能是时间-对齐。如果所有服务检查值都来自同一时刻,则更容易检测相关性(因为这组值本质上是一个快照)。
我的第一个想法是通过运行单个命令的单个实例来处理这个问题,这将返回多个服务的值。这似乎也比打开与要检查的服务一样多的连接实例更有效。从脚本的角度来看,这很容易做到。但从 Nagios 配置的角度来看,我不知道您会如何(或是否?)这样做。
我知道我也可以将数据收集与 Nagios 检查分离,定期一次性缓存遥测值,并从缓存中提供 Nagios 值。但如果我能提供帮助,我不想引入额外的延迟。
想法?
【问题讨论】:
-
经过一些额外的阅读,我正在考虑被动地提交服务数据。它将解决我提到的所有问题。但它会创建一些小的新进程——现在有外部进程可以继续运行,而且它有点超出主流的做事方式(可能会让未来的管理员有点痛苦来弄清楚它是如何工作的)。一如既往,我愿意接受建议!
标签: nagios