`
guwenwu285
  • 浏览: 37286 次
社区版块
存档分类
最新评论

OpenNMS阀值、事件及警告配置笔记--开源监控软件

 
阅读更多

一.阀值Thresholds

1.配置流程
(1)首先,必须要收集你想要监控阀值的数据。
(2)然后,在 thresholds.xml中为你想要监控的数据配置一个阀值。
(3)然后在threshd-configuration.xml中设置需要监控阀值的设备、IP段、接口。
(4)最后为阀值监控创建报警或通知。
2.阀值监控的种类(type)
按照data source分类有两种。
Basic Threshold——直接对data source进行监控。
Expression based Threshold——监控按照表达式进行处理后的data source
(1).high:当数据高于设定的阀值时,触发一个'highthreshold'事件,直到数据低于re-arm值时,事件才被取消。
(2).low:与high相反。
(3).relativeChange:监控数据的相对变化,如下配置数据上涨了50%将引发事件(rearm值relativeChange无效)
<!-- Note: the "rearm" and "trigger" values are not currently used. -->
<threshold type="relativeChange" ds-name="ifInOctets" ds-type="if" value="1.5" rearm="1.0" trigger="1"/>
(4)absoluteChange:监控数据的绝对变化,如下配置数据上涨或下降3将引发事件。
<!-- Note: the "rearm" and "trigger" values are not currently used. -->
<threshold type="absoluteChange" ds-name="loss" ds-type="node" value="3" rearm="1.0"trigger="1"/>
3.配置文件中的标签和属性含义:
thresholds.xml
type:阀值监控的类型:‘high’ ‘low’ ‘relativeChange' 'absoluteChange'
rrdRepository:rrd数据存放目录,指向SNMP收集到的数据存放地址
expression:对数据源进行计算处理的数学表达式
ds-name:data source的名称
ds-type:data source类型,节点数据对应“node",接口数据对应‘if’
ds-label:data source的标签
value:阀值,对不同的type有不同的意义,如果设置为负数,将取其绝对值
rearm:The value at which the threshold will reset itself. Not used for relativeChange thresholds.
trigger:设置数据超过阀值的多少次才会引发事件,对 relativeChange 不适用
triggeredUEI:当阀值监控被触发时,向event发送事件时的UEI,如果设置为空,将默认生成一个标准thresholds UEIs.
rearmedUEI:threshold rearm时发送事件时的UEI
filters:一个正则表达式,用于对data source进行过滤
filterOperator:多个filter之间的连接符,可用or和and,默认值为or


threshd-configuration.xml


在thresholds.xml中,为每一个thresholds配置了相关的阀值、过滤、数据源等,并将其分到不同的group中,而在threshd-configuration.xml中为每一个group建立一个package,可以在其中配置被监控的设备IP段、
filter:对IP地址进行过滤,符合条件的设备才进行监控
include-range:将一个IP段加入到监控中
4.在web UI中管理thresholds
Admin->Manage Thresholds->选择一个Group,点击Edit进行编辑
NOTE:早期的OpenNMS中,threshd进行阀值监控和collectd不是同步的,threshd取出的数据可能是错误。后期OpenNMS将threshd和collectd进行了同步,collected收集到数据后,立即由threshd将数据与阀值进行比较,对于ICMP的数据,threshd和poller是同步的,如果需要开启SNMP同步功能可以在collectd-configuration.xml中,添加一个parameter

<parameter key="thresholding-enabled" value="true"/>


5.配置举例:为disk设置阀值
在threshd-configuration.xml中添加一个group:
<package name="Your NetWare Server Name">
<filter>IPADDR IPLIKE *.*.*.*</filter>
<specific>"Your NetWare IP Address"</specific>
<service name="SNMP" interval="300000" user-defined="false" status="on">
<parameter key="thresholding-group" value="Your NetWare server name-snmp"/
</service>
<outage-calendar>zzz from poll-outages.xml zzz</outage-calendar>
</package>


在thresholds.xml中为group配置阀值:
<group name="Your NetWare server name-snmp"
rrdRepository = "/var/opennms/rrd/snmp/">
<threshold type="low" ds-name="disk-sys-free" ds-type="node" value="1204764" rearm="1304764" trigger="3"/>
<threshold type="low" ds-name="disk-dept-free" ds-type="node" value="20062184" rearm="2104764" trigger="3"/>
<threshold type="low" ds-name="disk-nos-free" ds-type="node" value="2085172" rearm="2185172" trigger="3"/>
<threshold type="low" ds-name="disk-ts-free" ds-type="node" value="564680" rearm="664680" trigger="3"/>
<threshold type="low" ds-name="disk-psft-free" ds-type="node" value="20897928" rearm="21897928" trigger="3"/>
<threshold type="low" ds-name="disk-user-free" ds-type="node" value="10025812" rearm="11025812" trigger="3"/>
<threshold type="low" ds-name="disk-apps-free" ds-type="node" value="7417340" rearm="7517340" trigger="3"/>
</group>


note:ds-name可以在$OPENNMS_HOME/etc/datacollection/*.xml中查找到


二.事件events
1.event种类
(1).由OpenNMS内部产生的“internal event”. (2).通过SNMP traps 生成的event
2.配置文件:eventconf.xml
UEI:Universal Event Identifier 用于辨识事件
event-label:web UI 中显示的时间标签
dscr:对事件的描述,支持html标签
logmsg:对事件的简短描述,包含一个“dest”属性,用于指明是否在数据库中log或在web Ui中展现,dest包含以下几个选项
logndisplay:在数据库中记录,并在web UI中展示
logonly:只记录,不展示
suppress:不记录也不展示
donotpersist:不在数据库中记录,但依然想其余进程发送event
discardtraps:只适用与trapd进程抛出trap的时候 ,trapd将不生成事件,直接忽略trap
severity:事件的严重程度,包含七个级别,并用不同颜色区分

Critical (dark red):表明网络中大量设备被这个event影响,应立即得到修正
Major (light red):设备完全down或有down的风险,事件应收到重视
Minor (orange):部分服务或功能损坏
Warning (yellow):不太紧要的,事件有可能需要得到注意,但是不用立即解决。
Normal (green):正常的事件
Cleared (light grey):表明之前的一个错误事件已经被纠正,服务已经恢复
Indeterminate (yellow-green):事件的影响无法预测
operinstruct:给管理员的操作提示
mouseovertext:web Ui中鼠标停留在event上时的文本提示
event-file:包含其他文件中的event
修改eventconf.xml文件后应用以下命令通知OpenNMS事件配置已经修改:
$OPENNMS_HOME/bin/send-event.pl uei.opennms.org/internal/eventsConfigChange
可以利用一下脚本来测试event配置:
$OPENNMS_HOME/bin/send-event.pl

$OPENNMS_HOME/bin/send-trap.pl


3.Event translator

event translator 允许对已经生成的event进行更改,它将clone一个相同的事件,并按照配置文件修改event中的一部份属性。使用这个功能的原因是:
创建被动状态事件。
将事件与不同的节点关联起来。
配置文件为:$OPENNMS_HOME/etc/translator-configuration.xml
可以利用从数据库取出的数据、正则表达式匹配的数据、String来替换event原有的属性,并生成一个新的event
4.事件发生时调用bean shell script
事件触发时,可以通过调用bean shell脚本来处理事件,脚本可以在$OPENNMS_HOME/etc/scriptd-configuration.xml中针对不同的UEI配置,也可以配置针对所有事件全局的脚本。
5.通过XML-RPC远程发送event
OpenNMS有一个个xmlrpcd进程,允许通过xml-RPC向远程系统转发event,配置文件为:$OPENNMS_HOME/etc/xmlrpcd-configuration.xml
1.配置举例:
<xmlrpcd-configuration max-event-queue-size="5000">
<external-servers retries="3" elapse-time="15000">
<xmlrpc-server url="http://10.1.8.10:8000" />
</external-servers>
<subscription>
<subscribed-event uei="uei.opennms.org/nodes/nodeLostService"/>
<subscribed-event uei="uei.opennms.org/nodes/nodeRegainedService"/>
<subscribed-event uei="uei.opennms.org/nodes/nodeUp"/>
<subscribed-event uei="uei.opennms.org/nodes/nodeDown"/>
<subscribed-event uei="uei.opennms.org/nodes/interfaceUp"/>
<subscribed-event uei="uei.opennms.org/nodes/interfaceDown"/>
<subscribed-event uei="uei.opennms.org/internal/capsd/updateServer"/>
<subscribed-event uei="uei.opennms.org/internal/capsd/updateService"/>
<subscribed-event uei="uei.opennms.org/internal/capsd/xmlrpcNotification"/>
</subscription>
</xmlrpcd-configuration>

标签和属性含义:


max-event-queue-size:存储队列的最大值
generic-msgs:默认是false,表示仅转发默认的六种basic event(node/service/interface +down/up)。设置为true时,表示转发所有订阅的event
external-servers:需要转发的xmlrpc服务器地址
retries:重试次数
elapse-time:重试等待时间
subscription:一组订阅的需要转发的事件,可以设置一个name
subscirption-event:一个订阅的需要转发的事件
OpenNMS系统将对external-servers中配置的所有服务器转发event,如果所有服务器都不可达,系统将存储5000条数据(max-event-queue-size)
2.激活xmlrpcd:
该进程默认是关闭的,如果需要开启这个功能,应该编辑$OPENNMS_HOME/etc/service-configuration.xml 解除以下配置代码的注释:
<service>
<name>OpenNMS:Name=Xmlrpcd</name>
<class-name>org.opennms.netmgt.xmlrpcd.jmx.Xmlrpcd</class-name>
<invoke at="start" pass="0" method="init"/>
<invoke at="start" pass="1" method="start"/>
<invoke at="status" pass="0" method="status"/>
<invoke at="stop" pass="0" method="stop"/>
</service>
3.运行流程
xmlrpcd初始化时,为每一个XMLRPC server创建一个EventListener和queue,当EventListener监听到一个被订阅的event时,将将event加入到queue中等待处理。当事件被处理时,xmlrpcd先检查generic-msgs属性,如果为false,只有默认的6种事件会被转发给XMLRPC server。
6.Automation 自动化
automation是opennms从1.3版本开始提供的功能,它由一个trigger和一个操作数据库的action statement构成,它可以完成一系列自动化的动作,比如定期清楚过期数据或当一个event长事件没有acknowledged,自动的将其severity级别升级。
配置文件:$OPENNMS_HOME/etc/vacuumd-configuration.xml
1.automation的属性:
name(required):用于区别automation的String
interval(required):整数,单位为毫秒,指明多长事件允许一次automation
trigger-name:通过名字来引用trigger
action-name(required):通过名字来引用action
action-event:需要发送的action-event名字
2.trigger:包含下列三个属性,并球有一个SQL statement,SQL语句的结果将由action中的语句进行处理。
name:名字 row-count和operator:两个属性一起使用,共同决定是否应该执行action
如:
<trigger name="selectNumBlafasel" operator="&gt;=" row-count="1" >
<statement>
select
distinct(ipaddr) as _ipaddr,
count(nodeid)
nodeid as _nodeid
from events
where
eventuei='uei.opennms.org/test/blafasel' and
eventtime &gt;= now()-'2 minutes'::INTERVAL
group by nodeid,ipaddr
having count(nodeid) &gt; 10;
</statement>
</trigger>

当statement中的查询结果数量大于1时才执行action
3.action:action是automation中必须的一个组成部分,包括name和可以处理trigger中结果或独立执行的SQL statement。如:
UPDATE alarms SET severity = least(7, severity+1)
WHERE alarmid = ${alarmid}


AND alarmAckUser is NULL


automation将对语句进行解析,并确定trigger中的result set包含语句中所需的字段,然后执行语句,更新数据库。
4.action-event:当automation运行时生成一个或多个event,但不是必须的。

八.警报 Alarms
Alarms是由event衍生出来的,它的配置同event整合在一起,在$OPENNMS_HOME/etc/eventconf.xml中.在event中添加alarm-data标签来配置alarm:
1.alarm-data的属性:
reduction-key:用于区分警报,对事件进行过滤,防止重复报警。如一下配置:
<alarm-data reduction-key="%uei%:%nodeid%" alarm-type="1" auto-clean="false" />


alarm将把event中的uei和nodeid存储到报警列表中,对之后的生成的有相同uei和nodeid的event将不会产生报警,而是只更新alarm的lastEventTime, lastEventID,这样就防止了重复警报


alarm-type:这个属性共有三个可能值 “1”表示需要解决,“2”表示警报已解决方案,“3”表示可能没有解决方案。
auto-clean:如果设置为true将自动从数据库删除满足 reduction-key中的条件的event
clear-key:仅当alarm-type设置为2的时有效,用于在故障恢复后,自动将满足clear-key的alarm清除
分享到:
评论

相关推荐

    opennms-1.6.5-1_new.rar_OpenN_openNMS_opennms-1_开源_网络管理

    OpenNMS是第一个开发在开源模式下的企业级网络管理平台应用。OpenNMS的目标是成为一个真真的分布式、可升级的网络管理平台,尽管它看似一个FCAPS网络管理模型,使之可用于开放源码和商业领域。目前:OpenNMS专注与...

    系统监控开源软件

    本文将基于给定的信息,详细介绍多种开源监控工具及其特点与用途。 #### 监控系统Nagios - **简介**:Nagios是一款广受欢迎的开源监控系统,能够对网络中的主机和服务进行主动或被动监控。 - **最新版本**:Nagios...

    opennms配置,功能手册

    OpenNMS是一款开源的网络监控系统,用于管理网络设备、服务和应用程序。它提供了一整套功能,包括自动发现网络资源、性能监控、故障检测、报警通知和报告生成。本手册将详细介绍OpenNMS的配置与功能,帮助你充分利用...

    opennms1.12.5-1源码下载

    OpenNMS是开源网络管理平台,它主要用于监控网络设备、服务和应用程序的性能与可用性。这个"opennms1.12.5-1源码下载"标题指的是该平台的1.12.5-1版本的源代码,允许用户深入理解其内部工作原理,进行定制开发或调试...

    OpenNMS安装、配置[归纳].pdf

    OpenNMS是一个流行的开源网络管理平台,提供了强大的网络监控和管理功能。本文将详细介绍如何在Ubuntu系统上安装和配置OpenNMS。 一、安装OpenNMS 1. 首先,需要编辑Ubuntu的sources.list文件,添加OpenNMS的仓库...

    opennms-source.tar.gz_SNMP_openNMS

    "opennms-source.tar.gz_SNMP_openNMS"这个压缩包,便是OpenNMS源码的载体,它包含了使用SNMP(简单网络管理协议)进行网络监控和管理所需的所有组件。 SNMP,全称Simple Network Management Protocol,是一种广泛...

    应用开源OpenNMS实现网络监控和报警.docx

    在这种情况下,湖南省疾控中心选择使用开源软件OpenNMS来实现网络监控和报警。 知识点1:网络监控软件的重要性 网络监控软件是数据中心的关键组件之一,它可以实时监控网络和系统的运行状态,提供报警和故障诊断...

    OpenNMS数据采集配置

    OpenNMS是一个开源的网络监控平台,它支持多种网络协议和服务,用于监控网络设备的性能和可用性。OpenNMS数据采集配置是这个系统中非常重要的一个环节,涉及到从网络设备中采集各种性能指标数据的过程,以及后续数据...

    opennms sendmail(邮件发送) 功能配置

    OpenNMS是一款开源的网络管理平台,专门用于监视网络、网络设备和服务的状态。其具有多种功能,其中之一便是通过邮件发送功能,当网络事件发生时,能够自动发送邮件通知系统管理员,便于及时响应问题。这项功能对于...

    OpenNMS通知配置(发送邮件)

    在IT行业中,OpenNMS是一个开源的网络管理系统,它可以监控网络中的设备和服务,并在出现问题时进行通知。本文将深入介绍如何在OpenNMS中配置邮件通知,让管理员能够通过邮件接收来自OpenNMS的事件通知。 首先,...

    开源的企业级网络管理平台:OpenNMS+SugarNMS(doc文档)

    OpenNMS是一个企业级基于Java/XML的分布式网络和系统监控管理平台。是网络管理系统Network Management System 的简称,是一种开源软件网络监视工具。

    OpenNMS系统Newts数据存储方式配置

    OpenNMS是业界知名的开源网络监控平台,它支持多种数据存储方式,包括新出现的基于时间序列的Newts数据存储方式。Newts是构建在Apache Cassandra之上的一个时序数据库,它为OpenNMS提供了高效的数据存储解决方案。 ...

    opennms配置文件介绍

    OpenNMS是一款开源的企业级网络管理系统,它可以用于监控网络设备的状态和服务。为了使OpenNMS能够有效地执行这些任务,需要通过一系列配置文件对其进行设置。本文将详细介绍几个关键配置文件及其设置项。 #### 二...

    OPEN NMS 开源网络监控与管理布属

    OpenNMS:开源网络监控与管理的首选 OpenNMS 是一个开源的网络管理平台,致力于为企业级用户提供全面的网络监控解决方案。它以其开放源代码、社区支持和强大的功能集而受到广泛赞誉。OpenNMS 的核心优势在于其灵活...

    openNMS开源代码

    openNMS开源网管,OpenNMS是一个企业级基于Java/XML的分布式网络和系统监控管理平台-OpenNMS Open Source Network Management, OpenNMS is an enterprise-class based on the Java/XML distributed network and ...

    opennms.zh:OpenNMS 中文-开源

    opennms 中文 http://www.qoswork.com OpenNMS 官方文档 https://qoswork.github.io/odoc/

    NMS开源软件选型分析评估报告

    openNMS的特色在于其强大的事件处理和报告功能,能够自动化处理大量监控数据。 2. zenoss:zenoss是一款全面的IT运维管理平台,不仅支持网络设备,还涵盖了服务器、虚拟机和云服务的监控。zenoss采用混合监控模式,...

    standalone-opennms

    standalone-opennms-1.6.8.jar

Global site tag (gtag.js) - Google Analytics