我已将 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 中的以下步骤将变换添加到根事件:
- 点击活动>事件类
- 点击左下角的齿轮
- 点击转换
- 在转换场地面积
- 点击节省
如果您想使用 Zope(因为“Danger”是您的中间名),那么您可以浏览到 http[s]://yourserver.com[:port]/zport/dmd/Events/manage,然后单击“属性”选项卡以进入“转换”字段。