转载于: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-definedinternalevent:auserhassuccessfullyauthenticationtotheWebUI</event-label>
- <descr>
- ThiseventissentbytheWebUIwhenuserrtchassuccessfullyauthenticated
- </descr>
- <logmsgdest='donotpersist'>
- OpenNMSuser%parm[user]%hasloggedinfrom%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;来查看事件所对应的参数,例如:
- SELECTeventparmsFROMeventsWHEREeventid=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)
- (1row)
这例表示了一个highThresholdRearmed
事件的所有参数,它们也可以用于事件过滤。由于事件很多,所以很容易导致数据库膨胀,所以对于不再有用的事件可以进行删除,然而由于在数据库的故障表及通知表中可能会有外键依赖于事件表,所以只能删除那些没有外键依赖约束的事件,可以通过如下SQL语句来实现:
- DELETEFROMeventsWHEREeventidNOTIN(SELECT
- svclosteventidFROM
- outages)ANDeventidNOTIN(SELECT
- svcregainedeventidFROMoutages);
至此,OpenNMS的事件介绍就全部结束了,后续将继续介绍OpenNMS的通知机制。
分享到:
相关推荐
7. **事件处理和通知**:OpenNMS的核心功能之一是事件处理,包括触发警报、执行自动化操作和发送通知。这些功能基于复杂的规则引擎实现。 8. **服务监测**:通过Ping、SMTP、HTTP等协议检查网络服务的可用性,确保...
openNMS1.6.5源码,最新稳定的版本。OpenNMS是第一个开发在开源模式下的企业级网络管理平台应用。OpenNMS的目标是成为一个真真的分布式、可升级的网络管理平台,尽管它看似一个FCAPS网络管理模型,使之可用于开放...
1. **核心框架**:这部分代码构建了openNMS的基础,包括事件处理、通知服务、数据采集等核心模块。这些模块通过模块化设计,实现了对网络监控的全面覆盖。 2. **SNMP支持**:由于SNMP(简单网络管理协议)在企业级...
"opennms-source.tar.gz_SNMP_openNMS"这个压缩包,便是OpenNMS源码的载体,它包含了使用SNMP(简单网络管理协议)进行网络监控和管理所需的所有组件。 SNMP,全称Simple Network Management Protocol,是一种广泛...
2. **事件处理**:系统记录所有监控事件,并通过邮件、短信或集成其他通知方式将报警信息传递给管理员。 3. **故障恢复确认**:当故障解决后,OpenNMS会进行恢复确认,避免发出不必要的重复报警。 五、报告与分析 ...
OpenNMS-Helm是基于OpenNMS监控系统的Grafana插件,它能够扩展Grafana的功能,以适应更复杂的网络监控需求。OpenNMS-Helm的安装和配置涉及到多个步骤,包括系统的前置安装条件、安装OpenNMS-Helm、启动服务、启用...
standalone-opennms-1.6.8.jar
OpenNMS-阈值-事件-生成器一种基于当前阈值设置生成良好阈值事件定义(和通知)的工具。 要编译该工具,请使用 Maven: mvn install这将生成一个带有依赖项的 JAR,以便能够轻松执行该工具,例如: java -jar ...
opennms 中文 http://www.qoswork.com OpenNMS 官方文档 https://qoswork.github.io/odoc/
OpenNMS Javascript API 用于访问OpenNMS网络监视平台的客户端API。 在代码中使用OpenNMS.js API 中提供了有关入门以及如何使用API的。 完整的API列表可在。 使用OpenNMS.js命令行 安装 运行npm install -g ...
) 使脚本可执行将通知命令添加到 $OPENNMS_HOME/etc/notificationCommands.xml 调用脚本。 (脚本头中有一个例子) 重启 OpenNMS 并登录导航到 Admin->Configure Notifications->Destination Paths 选择并升级,...
通过opennms-ksc-grafana,用户可以充分利用Grafana的可视化优势,对OpenNMS KSC的监控数据进行深度分析和展示,这对于网络运维团队来说,无疑是一种提升效率、优化工作流程的有效手段。无论是日常监控、问题排查,...
为了使用 OpenNMS Modules Manager,你需要先将其克隆或下载到本地,例如,你可以找到名为 "opennms-modules-manager-master" 的压缩包文件,解压后通过 Java 运行环境执行相应的脚本或命令。在执行前,确保你的系统...
本文将深入介绍如何在OpenNMS中配置邮件通知,让管理员能够通过邮件接收来自OpenNMS的事件通知。 首先,我们需要了解邮件服务器的配置。在OpenNMS中,邮件服务器的配置主要通过修改配置文件来实现。默认情况下,...
OpenNMS-IP-发现-供应-适配器可选的Provisioning Adapter,用于将IP接口的自动发现管理为非托管动机找到想要发现并持久存储数据库中所有IP接口,但仅主动监视受监控的服务的OpenNMS用户和操作员是很常见的,这些服务...
opennms-事件使用 Kibana 分析 opennms 事件安装(来自源码) 这是一条骆驼路线,因此它需要 Java、Maven 3、Elasticsearch 和可以访问 opennms 存储其数据的 postgres 数据库的数据库用户。 克隆这个存储库,然后 ...
厨师食谱,用于管理OpenNMS Horizon的安装和配置。 当前版本支持CentOS 6和7的发行版16、17、18、19、20、21、22、23、24、25、26。 版本号 从OpenNMS Horizon 16开始,该食谱版本的MSB与其支持的OpenNMS ...
OpenNMS-KSC至Grafana 将 KSC报表转换为仪表板。 已针对Grafana 4.x,5.x和6.x进行了测试; 尽管该工具仅在Grafana 5.x或更高版本上在标准输出上提供有关生成的仪表板的信息。 由于Grafana的工作方式不同,它不会...
OpenNMS集成API 该项目旨在通过引入一个稳定的接口来对其进行编写,从而使其更容易为OpenNMS编写插件和扩展。 然后,OpenNMS和Meridian的版本将实现API的至少一个主要版本。 特征 API的用户当前可以利用以下功能和...