1

我需要监视与我的场不同位置的几台 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 的格式是这样的:

HOSTNAME,CHECK_NAME,RESULT_VALUE,COMPARE,DESIRED_VALUE,INFO

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

非常感谢

4

2 回答 2

0

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

例如,消息可以以服务器名称开头:"[APPLIANCE1] Out of Memory". 在 Zenoss Web 界面 ( http://my_zenoss_install.local:8080/zport/dmd/Events/editEventClassTransform )的“事件类转换”部分中,您可以转换传入消息的属性(使用 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为,并包含标签作为消息前缀,或者您想用来唯一标识来自远程系统的消息/陷阱的任何其他内容。APPLIANCE1INTERNAL1[APPLIANCE1]

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

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

于 2013-10-15T15:57:19.060 回答
0

只需您可以在远程位置部署一个收集器,然后将该主机添加到收集器池中,您还可以监控远程 linux 服务器

于 2018-03-22T08:55:09.913 回答