Мне нужно получить сведения о событии из ловушки в преобразовании события.
Ловушки содержат символы в деталях события. Проблема в том, что идентификаторы OID непредсказуемы, потому что последняя цифра - это номер события в самой SAN.
Например, два перечисленных oid были включены в ловушки, отправленные, когда я извлекал диски из массива. Это было для разных дисков, но различались только номера 10000779 и 1419, которые соответствуют идентификатору события в SAN.
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.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.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 () - нет.
-обновлен простым примером-
По этой теме на Event Enrichment.Org есть довольно обширное руководство.
Примечание: приведенные примеры относятся к Zenoss 4.2.
http://www.eventenrichment.org/enrich-zenoss-events-embedding-details/
Версия с крайними примечаниями обрыва: используйте функцию _map.keys () в преобразованиях событий.
Например.:
for d in evt.details._map.keys(): if d == 'monitor.13.0': query = evt.details.get(d) evt.message = "The following query is taking longer than the allocated interval:\n" + query if d == 'status.1.0': evt.summary = evt.summary + ": " + evt.details.get(d) if d == 'monitor.20.0': evt.component = evt.details.get(d) if d == 'monitor.8.0': evt._action = 'history'
Лучший,
-Офир
Привет Ник,
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