Как я могу получить детали события в преобразовании с Zenoss 3.x
Мне нужно получить детали события из ловушки в преобразовании события.
Ловушки идут с кислотами в деталях события. Проблема в том, что идентификаторы OID непредсказуемы, поскольку последняя цифра - это номер события в самой сети SAN.
Например, два перечисленных oids были включены в ловушки, отправленные, когда я извлек диски из массива. Это было для разных дисков, но единственными отличающимися номерами являются 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.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() - нет.
2 ответа
Привет ник,
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
Обновлен простым примером
Существует довольно обширное руководство по Event Enrichment.Org на эту тему.
Примечание: приведенные примеры относятся к Zenoss 4.2.
http://www.eventenrichment.org/enrich-zenoss-events-embedding-details/
Крайняя версия примечаний к скале: используйте функцию _map.keys() в преобразованиях событий.
Например:
для d в evt.details._map.keys(): если d == 'monitor.13.0': query = evt.details.get(d) evt.message = "Следующий запрос занимает больше времени, чем выделенный интервал:\n" + запрос если d == 'status.1.0': evt.summary = evt.summary + ": " + evt.details.get(d) если d == 'monitor.20.0': evt.component = evt.details.get(d) если d == 'monitor.8.0': evt._action = 'история'
Лучший,
-Ophir