OpenNMS扩展 - 事件配置
1. 概述(Overview)
OpenNMS包括一个强有力的事件通知系统,OpenNMS管理事件通知的进程是eventd。主要有两种类型的事件:由OpenNMS内部产生的事件和通过外部的SNMP trap产生的事件。
当事件产生时,将会设置不同的参数,比如:事件描述,事件的log信息与严重级别,另外,通过eventconf.xml文件配置能够自动加载事件发送参数到一个外部的script.
OpenNMS的事件可以伴随一个通知,特别的事件可能通过页面或Email,SMS等方式发出一个通知。
2. 事件(Events)
2.1 配置文件(Configuration File)
事件配置的主要文件位于$OPENNMS_HOME/etc与$OPENNMS_HOME/etc/events目录下(本例OPENNMS_HOME为/usr/local/opennms/source/dist)。
2.1.1 eventconf.xml
这个文件定义通用事件识别码(Universal Event Identifiers或UEIs)以及它们的事件屏蔽(masks),描述,记录文件信息和严重程度。
<?xml version="1.0"?>
<events xmlns="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>
<event-file>/usr/local/opennms/source/dist/etc/events/SureTech.events.xml</event-file>
<event-file>/usr/local/opennms/source/dist/etc/events/3Com.events.xml</event-file>
<event-file>/usr/local/opennms/source/dist/etc/events/Standard.events.xml</event-file>
<event>
<uei>MATCH-ANY-UEI</uei>
<event-label>OpenNMS defined event: MATCH-ANY-UEI</event-label>
<descr>
<p>This UEI will never be generated, but exists
so that notifications can match any UEI for a
particular filter rule. Useful to see all events for
a particular node via notifications.
</p>
</descr>
<logmsg dest='logonly'>
MATCH-ANY-UEI event.
</logmsg>
<severity>Indeterminate</severity>
</event>
<event-file>/usr/local/opennms/source/dist/etc/events/default.events.xml</event-file>
</events>
eventconf.xml包括内部事件与外部事件的配置,内部事件主要是OpenNMS的事件,外部事件是自定义的事件,如企业事件。外部事件主要是通过<event-file>标签引入。如引入SureTech企业的外部事件:
<event-file>/usr/local/opennms/source/dist/etc/events/SureTech.events.xml</event-file>
所有的事件由企业分开。当opennms启动时,每个企业事件配置文件会被载入,根据引入文件选择顺序载入,定义在eventconf.xml文件中的事件会被事先加载。最佳实践是将内部事件定义在eventconf.xml中。
注:在eventconf.xml最底端:
<event-file>/usr/local/opennms/source/dist/etc/events/default.events.xml</event-file>
这个文件包含通用缺省事件,要始终列在最后。
2.1.2 trapd-configuration.xml (daemon)
这个文件定义SNMP trap的埠口(port)。
<?xml version="1.0"?>
<trapd-configuration snmp-trap-port="162" new-suspect-on-trap="true"/>
2.1.3 eventd-configuration.xml (daemon)
这个文件定义eventd的运行参数,TCP,UDP端口,监听执行的线程数,下一个事件ID,Socket是否设置超时及超时时间。
<EventdConfiguration
TCPPort="5817"
UDPPort="5817"
receivers="5"
getNextEventID="SELECT nextval('eventsNxtId')"
socketSoTimeoutRequired="yes"
socketSoTimeoutPeriod="3000">
</EventdConfiguration>
2.1.4 actiond-configuration.xml (daemon)
在事件(events)产生时所呼叫的外部程序称为(actions). 此文件设置控制最多可以同时执行的action数量, 以及等待action执行完毕回传结果的逾时值。
<?xml version="1.0"?>
<actiond-configuration
max-outstanding-actions="10"
max-process-time="120000">
</actiond-configuration>
2.1.5 events.archiver.properties, events-archiver-configuration.xml
Event模块日志配置。
2.1.5自定义事件文件(企业事件)
如:建立SureTech.events.xml
<events>
<!-- Start of SureTech Traps -->
<!-- Start of SureTech MIB: SureTech-MIB -->
<event>
<mask>
<maskelement>
<mename>id</mename>
<mevalue>.1.3.6.1.4.1.888.1</mevalue>
</maskelement>
<maskelement>
<mename>generic</mename>
<mevalue>6</mevalue>
</maskelement>
<maskelement>
<mename>specific</mename>
<mevalue>1</mevalue>
</maskelement>
</mask>
<uei>
uei.opennms.org/vendor/SureTech/traps/SureTechCPUResourcesConsuemed
</uei>
<event-label>
SureTech-MIB defined trap event:
SureTechCPUResourcesExceedConsuemed
</event-label>
<descr>
<p>An ECC single-bit error has been corrected in one
of the memory modules</p><table> </table>
</descr>
<logmsg dest='logndisplay'>
<p>SureTech Event: EEC Single-bit Error
Corrected.</p>
</logmsg>
<severity>Normal</severity>
</event>
<event>
<mask>
<maskelement>
<mename>id</mename>
<mevalue>.1.3.6.1.4.1.888.%</mevalue>
</maskelement>
<maskelement>
<mename>generic</mename>
<mevalue>6</mevalue>
</maskelement>
</mask>
<uei>
uei.opennms.org/vendor/SureTech/traps/EnterpriseDefault
</uei>
<event-label>
OpenNMS-defined trap event: SureTech EnterpriseDefault
</event-label>
<descr>
<p>This is the default event format used when an
enterprise specific event (trap) is received from a SureTech
device for which no format has been configured (i.e. no
event definition exists).</p>
</descr>
<logmsg dest='logndisplay'>
Received unformatted enterprise event (enterprise:%id%
generic:%generic% specific:%specific%). %parm[##]% args:
%parm[all]%
</logmsg>
<severity>Indeterminate</severity>
</event>
</events>
事件文件以<events>标记开始以</events>标记结束。
<mename>标签的值可能有如下值:
l uei
l source
l host
l snmphost
l nodeid
l interface
l service
l id
l specific
l generic
l community
例子中的menname是取id,即企业OID=.1.3.6.1.4.1.888.1,generic值为6表现根据企业特定的MIB即1来产生事件。
Generic是trap类型,共分为表4中的7种。
trap类型 | 名字 | 说明 |
0 | coldStart | 代理进行了初始化 |
1 | warmStart | 代理进行了重新初始化 |
2 | linkDown | 一个接口从工作状态变为故障状态 |
3 |