Как импортировать DMD в картографирование Zenoss?

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

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

Это то, что я пытаюсь сделать (отображение находится в / Unknown / linkUp)

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 уже определен.

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

evt.summary = str ('dmd' в местных ()

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

Другие вопросы по тегам