我有solaris10+zenoss2.7.0,没有甲骨文的许可证我无法升级它,所以我试图找到解决办法,这就是为什么我请求您的帮助。在
对于过去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日志公司名称:
^{pr2}$
从脚本中完全删除dmd,它已经在执行事件转换期间在locals()中定义。没有必要自己定义它,就像evt已经定义一样。在
要亲自查看,请定义以下单行事件转换,然后使用事件控制台添加按钮为刚刚为其创建转换的事件类添加新事件,以便快速测试:
在执行摘要=str('dmd'在locals()中)
在事件摘要中应该会看到一个True,这意味着dmd已经定义,可以使用了:)
相关问题 更多 >
编程相关推荐