OpenNMS全接触-事件及通知(十)
来源:互联网 发布:战舰世界 青叶 数据 编辑:程序博客网 时间:2024/05/01 01:39
转载于:http://njulinq.blog.51cto.com/1257169/292679
OpenNMS提供了一个工具mib2opennms用于将snmp trap的定义转换为OpenNMS中的事件。eventconf.xml文件定义了OpenNMS中的内部事件及外部事件(snmp trap),而且这些事件定义的顺序也至关重要,因为当在通过snmp trap做事件匹配时,只会触发第一个满足匹配条件的事件。所以对于一个给的的snmp trap,如果需要针对不同的variable binding取值做过滤,就需要定义多个事件,这样就会导致eventconf.xml文件迅速膨胀,为了更好的维护该文件,又引入了<event-file>元素,该元素用于包含其他事件定义文件,通过这种方式,就可以将一部分事件的定义转移到其他文件中,从而为eventconf.xml文件“减负”。例如:
- <event-file>/opt/OpenNMS/etc/events/3Com.events.xml</event-file>
- <event-file>/opt/OpenNMS/etc/events/APC.events.xml</event-file>
- <event-file>/opt/OpenNMS/etc/events/Brocade.events.xml</event-file>
- <event-file>/opt/OpenNMS/etc/events/CIM.events.xml</event-file>
- <event-file>/opt/OpenNMS/etc/events/Cisco.events.xml</event-file>
- <event-file>/opt/OpenNMS/etc/events/Fore.events.xml</event-file>
- <event-file>/opt/OpenNMS/etc/events/HP.events.xml</event-file>
- <event-file>/opt/OpenNMS/etc/events/Intel.events.xml</event-file>
- <event-file>/opt/OpenNMS/etc/events/Microsoft.events.xml</event-file>
- <event-file>/opt/OpenNMS/etc/events/Novell.events.xml</event-file>
- <event-file>/opt/OpenNMS/etc/events/Oracle.events.xml</event-file>
- <event-file>/opt/OpenNMS/etc/events/SonicWall.events.xml</event-file>
- <event-file>/opt/OpenNMS/etc/events/Xerox.events.xml</event-file>
- <event-file>/opt/OpenNMS/etc/events/Standard.events.xml</event-file>
这些被包含的文件必须以<events></events>元素为根元素,在这之间加入<event>元素用于定义事件,定义方法与eventconf.xml文件中相同。所有的snmp trap对应的事件都按厂家放在一个文件中,并且在OpenNMS启动过程中按顺序依次加载,所以这些文件被加载的顺序,即被包含的顺序也非常重要。通过这种方式,就可以有效的将所有外部事件分离出去,而在eventconf.xml文件中只需要保存OpenNMS的内部事件即可,而且这些事件先于外部事件被加载。在eventconf.xml文件的最后,是包含通用的默认事件,它总是放在最后被加载。
这里有几个提示:
- 由于系统在匹配事件时,是会顺序扫描所有的事件,所以尽可能去掉那些你不会用到的事件,包括文件
- 如果你需要对某个事件文件做定制,例如,对3Com.events.xml文件做定制,可以先拷贝3Com.events.xml文件至my.3Com.events.xml文件,然后在该文件中做修改,并且将该文件先于3Com.events.xml文件包含至eventconf.xml文件。这样在未来,当默认的3Com.events.xml文件需要修改时,你的工作会很轻松。
例如,如果我们要去掉rtc的登录事件,既不显示该事件,也不保存该事件,我们可以将如下事件定义添加至eventconf.xml文件,注意,它的顺序要在uei.opennms.org/internal/authentication/successfulLogin事件之前:
- <event>
- <mask>
- <maskelement>
- <mename>uei</mename>
- <mevalue>uei.opennms.org/internal/authentication/successfulLogin</mevalue>
- </maskelement>
- <varbind>
- <vbnumber>1</vbnumber>
- <vbvalue>rtc</vbvalue>
- </varbind>
- </mask>
- <uei>uei.opennms.org/internal/authentication/successfulLogin</uei>
- <event-label>OpenNMS-defined internal event: a user has successfully authentication to the WebUI</event-label>
- <descr>
- This event is sent by the WebUI when user rtc has successfully authenticated
- </descr>
- <logmsg dest='donotpersist'>
- OpenNMS user %parm[user]% has logged in from %parm[ip]%.
- </logmsg>
- <severity>Normal</severity>
- </event>
这样,我们就能够有效的屏蔽掉rtc成功的登录事件。
为了使对eventconf.xml文件的修改能够立即生效,其实不需要重启OpenNMS,只需要通过OpenNMS提供的send-event.pl脚本发送uei.opennms.org/internal/eventsConfigChange事件即可通知OpenNMS,告知其eventconf.xml文件改变了需要重新加载。另外OpenNMS还提供了send-trap.pl用于发送snmp trap。
可以直接在数据库中查看事件,特别是可以通过执行SELECT eventparms FROM events WHERE eventid=204;来查看事件所对应的参数,例如:
- SELECT eventparms FROM events WHERE eventid=204;
- eventparms
- ---------------------------------------------------------------------------------------------------------------------------
- ds=http(string,text);value=11.75(string,text);threshold=100.0(string,text);trigger=3(string,text);rearm=50.0(string,text)
- (1 row)
这例表示了一个highThresholdRearmed
事件的所有参数,它们也可以用于事件过滤。由于事件很多,所以很容易导致数据库膨胀,所以对于不再有用的事件可以进行删除,然而由于在数据库的故障表及通知表中可能会有外键依赖于事件表,所以只能删除那些没有外键依赖约束的事件,可以通过如下SQL语句来实现:
- DELETE FROM events WHERE eventid NOT IN (SELECT
- svclosteventid FROM
- outages) AND eventid NOT IN (SELECT
- svcregainedeventid FROM outages);
至此,OpenNMS的事件介绍就全部结束了,后续将继续介绍OpenNMS的通知机制。
- OpenNMS全接触-事件及通知(十)
- OpenNMS全接触-事件及通知(六)
- OpenNMS全接触-事件及通知(七)
- OpenNMS全接触-事件及通知(八)
- OpenNMS全接触-事件及通知(九)
- OpenNMS全接触-事件及通知(六)
- OpenNMS全接触-事件及通知(七)
- OpenNMS全接触-系统架构(三)
- OpenNMS全接触-系统启动(四)
- OpenNMS全接触-系统启动(四)(续)
- OpenNMS全接触-线程池(五)
- OpenNMS全接触-系统架构(三)
- OpenNMS全接触-系统启动(四)
- OpenNMS全接触-系统启动(四)(续)
- OpenNMS全接触-线程池(五)
- OpenNMS全接触-OpenNMS介绍(一)
- OpenNMS全接触-OpenNMS介绍(二)
- OpenNMS全接触-OpenNMS介绍(二)
- WPF中动态改变控件显示位置
- 视频测试序列的下载地址 转自:http://blog.sina.com.cn/s/blog_5fd6a0e50100dn0k.html
- nfs配置
- Java中StringBuilder的清空方法比较
- 在VB图像处理中BMP位图的详细说明
- OpenNMS全接触-事件及通知(十)
- LinuxShell编程
- 解决"ORA-28001: the password has expired”
- Android面试题,看看你基础如何
- 安卓ApiDemos学习 app/Activity/Wallpaper
- Live Wallpaper动态壁纸开发
- 软件项目开发流程(转)
- 07.Android之Bluetooth
- JAXP JAXB JAXR JAX-RPC JAXM