Назад | Перейти на главную страницу

Как я могу получить сведения о событии в преобразовании с помощью Zenoss 3.x

Мне нужно получить сведения о событии из ловушки в преобразовании события.

Ловушки содержат символы в деталях события. Проблема в том, что идентификаторы 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