转载于:http://njulinq.blog.51cto.com/1257169/288894
OpenNMS的主要功能之一就是对事件及通知的管理。其实,对于任意一个网管系统而言,其功能都可以描述为检测网络的变化,而每一个这种变化都可以理解为一个事件。
OpenNMS通过一个名为Eventd的服务来管理事件(可以在%opennms_home%/etc/service-configuration.xml文件中看到该服务的身影:) )。在OpenNMS中有两种类型的事件:一种是OpenNMS自己内部产生的事件,还有一种就是外部产生的SNMP Trap事件。后台的服务可以生成事件,如discovery服务当收到某个接口对ping的响应后,就会产生一个newSuspect事件,同时这些后台服务也可以作为事件监听者来监听这些事件,当这些事件发生后,可以做相应的处理,例如capsd服务当收到newSuspect事件后,就开始对该事件对应的接口进行服务扫描。
当产生事件时,还可以针对事件设置一些参数,如事件描述信息、用于生成日志的消息内容以及事件的严重度。另外一些自动化的操作也可以用于当事件发生时将这些事件的参数发送给外部的一些脚本程序,从而触发它们的执行。而这些都可以通过eventconf.xml文件来定义。后面我们会详细介绍该文件的内容。
OpenNMS还提供了功能丰富的通知系统,一些事件可以用于发送通知,例如通过页面通知或者email通知。
下面介绍一下eventconf.xml文件中的内容:
该文件默认路径为%opennms_home%/etc/. 该文件定义了如何处理事件。首先看下该文件的最顶层定义如下:
- <eventsxmlns="http://xmlns.opennms.org/xsd/eventconf">
- <global>
- <security>
- <doNotOverride>logmsg</doNotOverride>
- <doNotOverride>operaction</doNotOverride>
- <doNotOverride>autoaction</doNotOverride>
- <doNotOverride>tticket</doNotOverride>
- <doNotOverride>script</doNotOverride>
- </security>
- </global>
eventconf.xml文件的最顶层元素为events。Eventd服务监听5817端口,所以即使外部的进程也可以向eventd发送事件。这里的security标签用于阻止外部进程发送的事件覆盖该文件中定义的对事件的处理方法。在这个针对全局的设置之后,开始是针对每个事件的具体定义了,我们以其中一个作为实例看下如何定义一个事件:
- <event>
- <uei>uei.opennms.org/nodes/nodeLostService</uei>
- <event-label>OpenNMS-definednodeevent:nodeLostService</event-label>
- <descr>
- &lt;p&gt;A%service%outagewasidentifiedoninterface
- %interface%.&lt;/p&gt;&lt;p&gt;AnewOutagerecordhasbeen
- createdandservicelevelavailabilitycalculationswillbe
- impacteduntilthisoutageisresolved.&lt;/p&gt;
- </descr>
- <logmsgdest='logndisplay'>
- %service%outageidentifiedoninterface%interface%.
- </logmsg>
- <severity>Major</severity>
- </event>
这里显示的是nodeLostService事件,我们看下事件的组成部分:
UEI:
其全称为 Universal Event Identifier,它只是一个用于标记事件的全局唯一的一个标记。对于OpenNMS的内部事件,事件的UEI是在代码中硬编码的,所以除非修改源代码,否则是没办法修改的。
event-label:
事件标签,这只是一个事件的普通文本表示的标签,会在前台Web界面中用到。
descr:
描述信息,关于事件的描述信息。可以在描述信息中嵌入HTML元素,在事件描述中你可以嵌入一些元素,如%interface%,这些相当于变量,在实际显示某个信息时,它会根据实际的内容替换这些元素。
logmsg:
关于事件的简单的描述或者概括。该元素的dest属性的取值可以取下面中的任何一种:
-
logndisplay
将该事件保存至数据库,同时在Web界面中显示该事件
-
logonly
只把该事件存至数据库,并不在Web界面中显示
-
suppress
既不保存该事件,也不在界面中显示
-
donotpersist
不保存该事件到数据库,但仍然会发送给OpenNMS的后台中那些监听该事件的那些服务(例如可以用于产生通知)
-
discardtraps
这个只适用于通过trapd收到的trap。这会导致trapd直接丢弃trap而不会产生事件。OpenNMs中监听该事件的后台服务则无法收到该类型的事件。
severity:
事件严重度,不同严重度的事件在显示效果上会不一样,如颜色不同,字体不同等。
分享到:
相关推荐
openNMS1.6.5源码,最新稳定的版本。OpenNMS是第一个开发在开源模式下的企业级网络管理平台应用。OpenNMS的目标是成为一个真真的分布式、可升级的网络管理平台,尽管它看似一个FCAPS网络管理模型,使之可用于开放...
opennms1.12.5-1官方源码下载
openNMS1.10.3-1源代码。 openNMS是很好用的网络管理工具,完全开源。
用于Internet中基于snmp协议的网络开发包 用于Internet中基于snmp协议的网络开发包
opennms配置,功能手册,从opennms网站扒下来的,希望对您有用
standalone-opennms-1.6.8.jar
OpenNMS-阈值-事件-生成器一种基于当前阈值设置生成良好阈值事件定义(和通知)的工具。 要编译该工具,请使用 Maven: mvn install这将生成一个带有依赖项的 JAR,以便能够轻松执行该工具,例如: java -jar ...
opennms-模块管理器 用于管理 opennms-modules 的 CLI
OpenNMS Javascript API 用于访问OpenNMS网络监视平台的客户端API。 在代码中使用OpenNMS.js API 中提供了有关入门以及如何使用API的。 完整的API列表可在。 使用OpenNMS.js命令行 安装 运行npm install -g ...
opennms 中文 http://www.qoswork.com OpenNMS 官方文档 https://qoswork.github.io/odoc/
Opennms从源码编译安装指南,很详细,很精准,以助于学习者快速理解opennms
) 使脚本可执行将通知命令添加到 $OPENNMS_HOME/etc/notificationCommands.xml 调用脚本。 (脚本头中有一个例子) 重启 OpenNMS 并登录导航到 Admin->Configure Notifications->Destination Paths 选择并升级,...
OpenNMS-IP-发现-供应-适配器可选的Provisioning Adapter,用于将IP接口的自动发现管理为非托管动机找到想要发现并持久存储数据库中所有IP接口,但仅主动监视受监控的服务的OpenNMS用户和操作员是很常见的,这些服务...
opennms-ksc-grafana:用于将OpenNMS KSC报表转换为Grafana仪表板的快捷实用程序
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的用户当前可以利用以下功能和...
OpenNMS-资源-供应-适配器 用于填充定义为复杂 SNMP 表的字符串的其他 MibObject 的配置适配器 要求: 1.0.x OpenNMS 14. 1.1.x OpenNMS 15/16。
这是一个 MCollective 应用程序文件,它允许 mcollective 生成 OpenNMS 网络管理系统的供应申请。 先决条件版本 >=1.10.0 的正在运行的 OpenNMS 服务器(早期版本中存在一个错误,会导致配置重复节点) 对 ...