集成到 Zenoss 远程数据中



我需要监视放置在与我的农场不同位置的几台 Linux 服务器。

我有VPN连接到这个远程位置。

在内部,我使用Zenoss 4来监视系统,我也想使用Zenoss来监视远程系统。对于合同政策,我不能对 Zenoss 数据使用 VPN 连接(例如 SNMP 或 SSH)。

我创建的是一堆脚本,用于将所需数据从远程系统获取到内部服务器。返回数据的格式为每个位置一个 CVS,包含来自放置在该位置的所有设备的数据。

例如:

$ cat LOCATION_1/current/current.csv
APPLIANCE1,out_of_memory,no,=,no,3,-
APPLIANCE1,postgre_idle,no,=,no,3,-
APPLIANCE2,out_of_memory,no,=,no,3,-
APPLIANCE2,postgre_idle,no,=,no,3,-

CVS 的格式是这样的:

主机名,CHECK_NAME,RESULT_VALUE,比较,DESIRED_VALUE,信息

当机器放置在内部农场中时,如何将这些数据集成到 Zenoss 中?如有必要,我最终可以更改获取数据的格式。

谢谢

一种可能性是,与远程系统通信的内部服务器(我们称之为INTERNAL1)将事件重新发出为SNMP陷阱(或将它们写入rsyslog文件),然后在Zenoss中处理它们。

例如,消息可以以服务器的名称开头:"[APPLIANCE1] Out of Memory" 。在 Zenoss Web 界面 (http://my_zenoss_install.local:8080/zport/dmd/Events/editEventClassTransform) 的"Event Class transform"部分,您可以转换传入消息的属性(使用 Python)。我经常使用它来降低事件的严重性。例如,

if evt.component == 'abrt' and evt.message.find('Saved core dump of pid') != -1:
    evt.severity = 2     # was originally 3, I think

根据您的需要,您可以将evt.device设置为APPLIANCE1消息是否来自INTERNAL1 ,并且包含[APPLIANCE1]标记作为消息前缀,或者您希望用于唯一标识来自远程系统的消息/陷阱的任何其他内容。

我不认为这是实现目标的最佳方式。我对Zenoss的了解严格限于我目前需要使用它的内容。

附言:这是 Zenoss 关于使用事件转换的相当古老的文档。不幸的是,Zenoss 中的文档稀疏且分散(您可能已经了解过),因此可能需要在 Zenoss 论坛上搜索旧帖子和/或提问。

只需在

远程位置部署一个收集器,然后将该主机添加到收集器池中,还可以监视远程 Linux 服务器

相关内容

  • 没有找到相关文章

最新更新