2013-06-15 2 views
0

У меня есть Solaris 10 + Zenoss 2.7.0, и я не могу обновить его без лицензии Oracle, поэтому я пытаюсь найти обходное решение, поэтому я прошу вас о помощи.Как импортировать DMD в сопоставление Zenoss?

Мне нужно, чтобы предотвратить движение событий в истории Таблицы, для любого события из того же устройства за полученным в течение последних 5 минут, а затем падение события, если количество составляет более 5

Вот что я попытаться сделать (отображение помещается в /Unknown/стыковка)

try: 
    import Globals 
    import sys 
    from Products.ZenUtils.ZenScriptBase import ZenScriptBase 
except Exception as error: 
    logging.error('ApplyTestZSB. Cannot import ZenScriptBase: %s\n' % error) 
    sys.exit(1) 

dmd = None 

try: 
    dmd = ZenScriptBase(connect=True).dmd 
except Exception as error: 
    logging.error(
     'ApplyTestDMD. Connection to zenoss dmd failed: %s\n' % error) 
    sys.exit(1) 

ourMessage = str(getattr(evt, "message")) 
ourDevice = str(evt.device) 
ourLastTime = float(evt.lastTime) 
old_elements = 0 

if evt.device and evt.component and evt.eventClass and evt.eventKey: 
    ourDedupId = '|'.join(
     [evt.device, evt.component, evt.eventClass, evt.eventKey, '']) 

for event in dmd.ZenEventManager.getEventList(): 
    if (event.lastTime > ourLastTime - 301) and \ 
     ((ourDedupId in str(event.dedupid) and event.severity > 0) or 
     (ourMessage == event.message and ourDevice == event.device)): 
     old_elements += event.count 

if old_elements > 4: 
    evt._action = 'drop' 

И я эту ошибку в zenhub.log:

2013-06-15 21:21:11 ERROR zen.Events: Error transforming EventClassInst linkUp (1) 
2013-06-15 21:21:20 ERROR root: ApplyTestDMD. Connection to zenoss dmd failed: 2 

2013-06-15 21:21:20 ERROR zen.Events: Error transforming EventClassInst linkUp (1) 
2013-06-15 21:21:24 ERROR root: ApplyTestDMD. Connection to zenoss dmd failed: 2 

2013-06-15 21:21:24 ERROR zen.Events: Error transforming EventClassInst linkUp (1) 
2013-06-15 21:21:28 ERROR root: ApplyTestDMD. Connection to zenoss dmd failed: 2 

2013-06-15 21:21:28 ERROR zen.Events: Error transforming EventClassInst linkUp (1) 

Спасибо заранее!

ответ

1

Удалите dmd целиком из вашего скрипта, он уже определен в locals() во время выполнения вашего преобразования событий. Не нужно определять его самостоятельно, так же как evt уже определен.

Чтобы увидеть для себя, определить преобразование следующего события одна строки, а затем с помощью кнопки консоли Event добавить, чтобы добавить новое событие для класса Event вы только что создали преобразования для того, чтобы быстро проверить:

EVT .summary = ул («ДМД» в местных())

Вы должны увидеть Правда помещается в резюме вашего мероприятия, то есть DMD уже определен и готов к использованию :)