将监控数据从Nagios / Zenoss推送到另一个系统

我build立了一个系统,进行各种types的时间序列分析,现在我想从一个监控工具中提供数据。 由于我已经在我的testing环境中设置了Nagios,所以我宁愿从那里得到它。 但作为第二select,我可以访问一个testing的Zenoss实例,并且也会赞赏Zenoss的答案。

我想要的是

我想在多个设备上使用多个KPI的时间序列。

理想情况下,我将能够指定数据格式,但只要包含我需要的信息,我很乐意在收到时进行转换。 我需要的信息是公正的

  • 设备标识符,例如10.2.42.2Ubuntu-42A
  • 正在监视的组件例如CPU内存
  • KPI,例如%UsageKBytes Available
  • KPI的价值
  • 时间戳

最后,我想通过HTTP(现在,稍后通过HTTPS)发送数据。

我可以在警报的情况下做到这一点 – 例如,当一个阈值被破坏时我知道如何configurationNagios来调用我的设备IP等简单的脚本作为参数 – 我的脚本执行HTTP请求。 但是我还没有看到如何才能设置好一项民意调查。

我不想要的

我不想要警报数据,我想要原始的时间序列。

我不想调查Nagios获取这些数据 – 轮询间隔会有所不同,我想避免不必要的networkingstream量。

我检查了这个问题,但似乎从奴隶Nagios节点发送数据到主Nagios节点。

您可以使用用于分布式监视的部分执行此操作。

例如,使用ocsp命令将所有检查结果发送到其他地方。 def命令可以指向一个通过curl或类似的方法来推送perfdata的脚本。

nagios.cfg我们添加了

  • obsess_over_services=1
  • ocsp_command=OUR_COMMAND_NAME

然后我们在commands.cfg定义了新的commands.cfg

  • command_name OUR_COMMAND_NAME
  • command_line /path/to/our/script

该脚本收到以下参数:

  1. 主机名
  2. 服务说明
  3. 服务状态
  4. 来自相关插件的消息

引用我的问题:我想要的设备是这个主机名,并且可以从服务描述和插件消息中提取组件&KPI。

不过,我需要做一些parsing工作来获得这些值,因为插件消息是为人类而不是机器写的

 OK - 1.05 GB used (1.05 GB RAM + 0.00 GB SWAP, this is 32.4% of 3.24 GB RAM) 

但至less格式是一致的,所以我不抱怨。