如何配置 Zenoss 以自动按名称而不是 IP 地址列出设备?

如何配置 Zenoss 以自动按名称而不是 IP 地址列出设备?

我已将 Zenoss 4.2.3 设置为从我们整个网络的所有子网(基础设施 -> 设备)获取设备。但它只返回带有 IP 地址的设备列表,它不会从 Windows 和 Linux 计算机获取主机名。

我该如何配置它来获取机器的名称?

答案1

“但它只返回带有 IP 地址的设备列表”

您是指基础设施选项卡还是指来自通知程序的电子邮件?

如果在通知程序中,Zenoss 4.2 中有一个错误,在电子邮件通知中使用 device.id 而不是 device.title。

为了解决这个问题,请将以下转换放入根“/”事件类。

d = dmd.设备.查找设备(evt.设备)
如果 d 不为 None:
  evt.设备标题 = d.标题
别的:
  evt.设备标题 = d.id

然后在通知的“内容”选项卡中使用以下内容

消息(主题)格式:[zenoss] **${evt/device_title}** - ${evt/summary}
正文格式:

位置:${evt/zenoss.device.groups}
设备:**${evt/device_title}**
组件:${evt/component}
严重性:${evt/sevword}
时间:${evt/lastTime}

信息:

${事件/消息}

a href="${urls/eventsUrl}">设备事件

a href="${urls/eventUrl}">活动详情

a href="${urls/ackUrl}">确认

a href="${urls/closeUrl}">关闭

希望这可以帮助。

答案2

我昨天花了几个小时研究这个问题,希望可以减轻一些人的痛苦。我发现了两个答案,我们将从简单的一个开始。

无需变换

在通知内容选项卡中,只需替换

${evt.device}

${eventSummary/actor/element_title}

发现途径:http://community.zenoss.org/message/71252#71252
(感谢 Philip Warren)
 

使用变换

Ophir 的上述回答适用于真实事件,但我发现它不适用于任何手动创建的(又名测试)事件。Transform 本身可以正确解析,但无论出于何种原因,测试事件无法正确解析通知内容中使用的自定义属性,并将失败并出现“无法执行 TALES 评估”错误。这使得测试自定义属性变得困难,因此希望 Zenoss 能尽快修复此问题。

我还建议更改他的变换的最后一行,否则当找不到“d”时可能会失败。以下是完整的重写变换代码:

d = dmd.Devices.findDevice(evt.device)
if d is not None:
  evt.device_title = d.title
else:
  evt.device_title = evt.device.title

发现途径:http://www.eventenrichment.com/zenoss-event-enrichment-5-min-less
 

嗯...我该如何改变任何东西?

对于那些以前没有这样做过的人(比如我,从昨天开始),您不需要使用 Zope 进入变换区域。只需按照 Zenoss 中的以下步骤将变换添加到根事件:

  1. 点击活动>事件类
  2. 点击左下角的齿轮
  3. 点击转换
  4. 转换场地面积
  5. 点击节省

如果您想使用 Zope(因为“Danger”是您的中间名),那么您可以浏览到 http[s]://yourserver.com[:port]/zport/dmd/Events/manage,然后单击“属性”选项卡以进入“转换”字段。

相关内容