我需要从事件转换中的陷阱中获取事件详细信息。
陷阱在事件详细信息中带有 OID。问题是 OID 不可预测,因为最后一位数字是 SAN 本身上的事件编号。
例如,列出的两个 oid 包含在我从阵列中拔出磁盘时发送的陷阱中。这是针对不同的磁盘,但唯一不同的数字是 10000779 和 1419,它们映射到 SAN 上的事件 ID。
1.3.6.1.3.94.1.11.1.9.32.128.0.192.255.20.149.189.0.0.0.0.0.0.0.0.10000779 1.3.6.1.3.94.1.11.1.9.32.128.0.192.255.20.149.189.0.0.0.0.0.0.0.0.1419
我能够使用 zendmd 深入了解事件详细信息并打印出其中一个值,但我似乎无法在事件转换中获得正确的咒语。
emgr = dmd.Events.getEventManager()
event = emgr.getEventDetail(dedupid='172.24.40.25||/Storage/SAN||4|snmp trap msaEventInfoTrap')
event.getEventDetails()
(('1.3.6.1.3.94.1.11.1.3.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.9999', '9999'), ('1.3.6.1.3.94.1.11.1.7.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.9999', '3'), ('1.3.6.1.3.94.1.11.1.9.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.9999', 'Event type: 312, Test SNMP trap, type HP StorageWorks P2000 G3 FC'), ('community', 'public'), ('oid', '1.3.6.1.4.1.11.2.51.0.3001'))
event.getEventDetails()[0][1]
'9999'
event.getEventDetails()[2][1]
'Event type: 312, Test SNMP trap, type HP StorageWorks P2000 G3 FC'
evt.summary 和 evt.severity 之类的东西在转换中起作用,但 evt.getEventDetails() 则不行。
答案1
嗨,Nick,
You need to create an EventClassMapping and add a rule. An in the Transform field you need to use
Variable1=getattr(evt,'1.3.6.1.3.94.1.11.1.9.32.128.0.192.255.20.149.189.0.0.0.0.0.0.0.0.10000779')
Variable2=getattr(evt,'1.3.6.1.3.94.1.11.1.9.32.128.0.192.255.20.149.189.0.0.0.0.0.0.0.0.1419')
evt.message = variable1 + ' ' + variable2
evt.summary = variable1 + ' ' + variable2
evt.severity=5 #Sets the severity to critical
答案2
- 更新了简单示例 -
Event Enrichment.Org 上对这个主题有相当详尽的指南。
注意:提供的示例与 Zenoss 4.2 相关。
http://www.eventenrichment.org/enrich-zenoss-events-embedding-details/
极端悬崖笔记版本:在事件转换中使用 _map.keys() 函数。
例如:
对于 evt.details._map.keys() 中的 d: 如果 d =='monitor.13.0': 查询 = evt.details.get(d) evt.message = “以下查询花费的时间超过了分配的间隔:\n”+查询 如果 d =='status.1.0': evt.summary = evt.summary + “:”+evt.details.get(d) 如果 d =='monitor.20.0': evt.组件 = evt.details.获取(d) 如果 d =='monitor.8.0': evt._action = '历史'
最好的,
· 奥菲尔