OpenNMS安裝與配置筆記

OpenNMS安裝與配置筆記
[color=red]一.從GIT獲取源碼,建立eclipse工程[/color]
1.mkdir ~/rcs; cd ~/rcs
2. git clone git://opennms.git.sourceforge.net/gitroot/opennms/opennmss
3. git branch -a (查看所有的分支)
4. git checkout -b 1.8 remotes/origin/1.8 (創建本地分支)
5. git reset --hard HEAD
6. git clean -f -d -x (5-6創建分支後的清理工作)
7. git pull (更新)
8.compile.pl (編譯)此過程須要修改頂級目錄下POM中maven-get-plugin版本(2.3.0-1-SNAPSHOT),此插件的官方包有bug,目前沒有解決,在opennms上一個開發人員自己提供了一個修改過的版本(http://www.stroppykitten.com/gwt-maven-plugin-2.3.0-1-SNAPSHOT.tar.gz)將此版本放到maven的本地庫中在編譯即可。
9.eclipse Import 編譯完後導入eclipse,即可做二次開發
[color=red]二. 從源碼安裝OpenNMS[/color]
安裝前確保JAVA環境使用的是sun-jdk 版本1.5以上
Ubuntu11.10環境下安裝:
1.安裝jicmp
下載地址: http://sourceforge.net/projects/opennms/files/JICMP/
版本:stable-1.2
cd jicmp
autoreconf -fvi
./configure
make
sudo make install
2.從源碼安裝OpenNMS
(1).在OpenNMS源碼目錄下,通過./compile.pl編譯源碼。
(2).完成編譯後運行./assemble.pl -Dbuild.profile=dir 將OpenNMS安裝到/target目錄下
3.安裝PostgreSql
(1).sudo apt-get install postgresql 安裝postgresql
(2).sudo vim /etc/postgresql/9.1/main/pg_hba.conf 修改數據庫密碼驗證方式.修改爲
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 md5
4.運行OpenNMS
(1).進入OpenNMS安裝目錄,修改目錄中權限BUG
cd <opennms.home>
chmod +x bin/*
chmod +x contrib/*
chmod -x contrib/*.README
chmod -x contrib/opennms.mib
(2).運行 ./bin/runjava -s 設置JVM
(3).運行 ./bin/install -dis 設置數據庫
(4).運行 ./bin/opennms start 運行opennms
訪問http://localhost:8980/opennms即可
CentOS6.2中源碼安裝:
安裝步驟與Ubuntu中安裝相同,過程中可能遇到以下幾個問題:
1.安裝JICMP時make、autoconfig、libtool未安裝
解決方法:分別在下列網址中下載安裝:
http://www.gnu.org/software/automake
http://www.gnu.org/software/autoconf
http://www.gnu.org/software/libtool
2.PostgreSQL數據庫安裝與啓動方式不同
yum install postgresql postgresql-server 安裝數據庫
/sbin/service postgresql initdb 初始化數據庫
/sbin/service postgresql start 啓動數據庫服務
/sbin/chkconfig postgresql on 設置數據庫服務開機自動啓動
3.運行./bin install -dis 初始化數據庫設置時報錯an error occurred getting the version from the database,language "plpgsql" does not exist
解決方法:參考:http://www.opennms.org/wiki/QuickStart#Initialize_OpenNMS_and_the_Database
執行下列語句 : createlang -U postgres plpgsql opennms
4.啓動OpenNMS時,報錯:DHCP服務衝突
解決方法: 參考:http://www.opennms.org/wiki/FAQ-Troubleshooting#Q:_Why_doesn.27t_the_dhcpd_process_ever_start.3F
修改$OPENNMS_HOME/etc/service-configuration.xml 文件中的配置,將以下內容註釋掉。
<service>
<name>OpenNMS:Name=Dhcpd</name>
<class-name>org.opennms.netmgt.dhcpd.jmx.Dhcpd</class-name>
<invoke pass="1" method="start"/>
<invoke at="status" pass="0" method="status"/>
<invoke at="stop" pass="0" method="stop"/>
</service>
重啓OpenNMS即可。 注意:修改配置後,OpenNMS無法監控DHCP服務
CentOS6.2 YUM安裝
1.rpm -Uvh http://yum.opennms.org/repofiles/opennms-repo-stable-rhel6.noarch.rpm
2.yum -y install opennms
3./opt/opennms/bin/runjava -s
4.yum install postgresql postgresql-server
5./sbin/service postgresql start
6.vi /var/lib/pgsql/data/pg_hba.conf
7./sbin/service postgresql restart
8./opt/opennms/bin/install -dis
CentOS6.2 RPM安裝centos
安裝腳本:install_opennms.sh
需要的RPM包:
#!/bin/bash -
rpm -vih postgresql-libs-8.4.9-1.el6_1.1.x86_64.rpm
rpm -vih postgresql-8.4.9-1.el6_1.1.x86_64.rpm
rpm -vih postgresql-server-8.4.9-1.el6_1.1.x86_64.rpm
service postgresql initdb
/etc/init.d/postgresql start
file="/var/lib/pgsql/data/pg_hba.conf"
mv ${file} ${file}.bak
sed 's/ident/trust/g' ${file}.bak>>${file}
/etc/init.d/postgresql restart
rpm -vih jdk-6u24-linux-amd64.rpm
rpm -vih jicmp-1.2.1-1rhel6.x86_64.rpm
rpm -vih jicmp6-1.0.1-1rhel6.x86_64.rpm
rpm -vih opennms-core-1.10.0-2.noarch.rpm
rpm -vih opennms-webapp-jetty-1.10.0-2.noarch.rpm
rpm -vih opennms-1.10.0-2.noarch.rpm
/opt/opennms/bin/runjava -s
/opt/opennms/bin/install -dis
/opt/opennms/bin/opennms start
如果在安裝過程中遇到如下錯誤:
錯誤:代理拋出異常: java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException: centos62virtualProduct: centos62virtualProduct
修改/etc/hosts文件,在其中加入本機的hostname即可解決,如:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 “YOUR HOST NAME”
[color=red]三.OpenNMS郵件通知配置[/color]
打開通知功能:Admin頁面中Operations下放的Notification Status 選項設置爲On,點擊Update。
1.郵件服務器的配置:
配置文件:$opennms_home/etc/javamail-configuration.properties
配置方案:
org.opennms.core.utils.useJMTA=false //是否使用JMTA,如果適用JMTA則將使用本機代理髮送郵件
org.opennms.core.utils.mailHost=mail.360buy.com //郵件服務器地址
org.opennms.core.utils.transport=smtp //發送協議
org.opennms.core.utils.smtpport=25 //SMTP協議端口
org.opennms.core.utils.debug=true //打印錯誤日誌,日誌文件 $opennms_home//logs/daemon/notifd.log
org.opennms.core.utils.smtpssl.enable=true //使用SSL鏈接服務器,starttls和SSL需根據郵件服務器來設置
org.opennms.core.utils.quitwait=true //等待服務器返回
org.opennms.core.utils.authenticate=true //啓用驗證
[email protected]
org.opennms.core.utils.authenticatePassword=*******your password*****
org.opennms.core.utils.starttls.enable=false //使用TLS連接服務器,使用京東郵件服務器應設置爲false。
org.opennms.core.utils.messageContentType=text/html
org.opennms.core.utils.charset=UTF-8
[email protected] //郵件中顯示的發送者,須同authenticateUser一致。
2.用戶配置:
webUI配置路徑:Admin->Configure Users, Groups and Roles->Configure Users->AddNew User->
輸入ID和password->在用戶信息中輸入Email(用戶的郵件接收地址)->Finsh
如果需要修改用戶信息,可以在Configure Users中點擊Modify按鈕修改。
3.Destination Paths配置(發送路徑,配置需要接收通知的羣組、用戶、角色和E-mail)
webUI配置路徑:Admin->Configure Notifications->Configure Destination Paths->New path
->輸入路徑名稱(如:testEmail-path)->點擊Initial Targets右邊的Edit,配置需要接受郵件的目標;
在這個頁面中共有四個個選框:User、Groups、Roles、Email選中需要接收郵件的目標即可。Email中
可以添加任意郵箱來接收郵件。->next配置用戶之間的發送延遲時間->next發送方式,選擇javaEmail即用郵件發送。
配置文件:$opennms_home/etc/destinationPaths.xml也可在配置文件中配置路徑
4.event配置
WebUI配置路徑:Admin->Configure Notifications->Configure Event Notifications->點擊上方的Add New Event Notification
添加新的Event->在events列表中選擇一個事件->Next->Skip results validation->編輯事件郵件內容,在choose A path 中選擇一個發送路徑。->Finish
[size=large][color=red]
四.NET-SNMP包的安裝與配置 [/color][/size]
1.安裝net-snmp:
Ubuntu11.10:apt-get install snmp snmpd
CentOS6.2: yum install net-snmp net-snmp-devel net-snmp-utils
啓動SNMP服務:/etc/init.d/snmpd start
查看SNMP版本:snmpget --version
2.SNMP配置:/etc/snmp/snmpd.conf(需要root權限)
(1)對於SNMP V3版本,默認設置是監聽本機的snmp請求,應該將其修改成成監聽所有設備的請求,V2c版本不用修改。
# Listen for connections from the local system only
#agentAddress udp:127.0.0.1:161
# Listen for connections on all interfaces (both IPv4 *and* IPv6)
agentAddress udp:161,udp6:[::1]:161
(2)配置SNMP的訪問權限,
默認的訪問權限設置如下,這個設置只能收集到系統的基本信息。
view systemonly included .1.3.6.1.2.1.1
view systemonly included .1.3.6.1.2.1.25.1
# group context sec.model sec.level prefix read write notif access notConfigGroup "" any noauth exact systemonly none none
可以修改成:
view all included .1
# group context sec.model sec.level prefix read write notif access notConfigGroup "" any noauth exact all none none
(3)如果需要修改默認的Community String可以將public替換掉:
com2sec notConfigUser 0.0.0.0 public

配置完成後,檢查snmp是否能夠訪問:snmpwalk -v 2c -c public YourIpAddress
(4)如果完成以上配置後依然無法訪問SNMP服務,可以嘗試
#sudo lsof-i:161
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
snmpd 1212 root 6u IPv4 11012 0t0 UDP *:snmp
PS:如果這裏顯示爲snmpd 9641snmp 6u IPv4 29940 0t0 localhost:snmp:snmp
說明161端口是監聽在localhost上的,也就是說不對外開放,只能訪問本地的161端口。
iptables -A INPUT -p udp -i eth0 --dport 161 -j ACCEPT 將161端口開放
或關閉掉iptables


[color=red]五.SNMP數據收集,RRD數據存儲方式配置。[/color]
(1).SNMP version與Community配置
默認的SNMP版本和是V2c,密碼是piblic。添加節點時可以在頁面修改。
或者在Admin->Configure SNMP Community Names by IP中根據不同的IP配置
配置文件:($OPENNMS_HOME/etc/snmp-config.xml)
配置文件中的標籤和屬性含義:
<snmp-config>標籤中定義的屬性爲全局的,適用與所有設備。
retry:重連次數,默認爲1
timeout:等待時間,單位是毫秒,默認爲3000
read-community:利用SNMP讀取數據的密碼,默認爲public
write-community:利用SNMP寫數據的密碼,當前版本沒有實現。
port:SNMP的端口,默認161
<definition>中的屬性爲局部的,僅適用與標籤內指定的IP,並會覆蓋全局屬性。
(2).配置數據收集colletd進程
配置文件:$OPENNMS_HOME/collectd-configuration.xml
配置文件中的標籤和屬性含義:
collectd-configuration.xml
threads:用於收集數據的線程數量
<package>將設備分組進行數據收集
<filter> :對package中的設備進行過濾,IP地址滿足過濾條件的設備將被包含在這個package中
<filter>IPADDR IPLIKE *.*.*.*</filter>
<specific> 指定一個特定的IP到package中
<include-range >指定一個特定IP範圍到package中 <include-range begin="192.168.0.1" end="192.168.0.254"/>
<exclude-range>在package中排除範圍內的設備
<exclude-range begin="192.168.0.100" end="192.168.0.104"/>
<include-url >指定一個文件文件中所有的IP都將包含到package中
<include-url>file:/opt/OpenNMS/etc/include</include-url>
<Services>爲package中的設備配置數據收集服務,其中包含以下屬性:
name:服務的名字,如SNMP、OpenNMS-JVM
interval:收集數據的時間間隔,單位爲毫秒,默認爲300000(5分鐘)
user-defined:當前的版本還沒有實現這個功能
parameter:設置變量
<outage>用於配置計劃中的中斷、故障
(3)SNMP數據收集配置以及RRD配置
配置文件:$OPENNMS_HOME/datacollection.xml
<snmp-collection>中定義了SNMP需要收集的數據組、RRD存儲方式和存儲目錄
RRD
rrdRepository:屬性定義了RRD存儲目錄,如果修改這一屬性,因同時修改一下配置文件中的內容:
poller-configuration.xml
thresholds.xml
http-datacollection-config.xml
jmx-datacollection-config.xml
nsclient-datacollection-config.xml
<rrd>標籤定義了rrd數據存儲方式,如:
<rrd step="30">
<rra>RRA:AVERAGE:0.5:1:2016</rra>
</rrd>
step;步長,以秒爲單位,默認值是300。
<rra>中的內容是RRD存儲數據的詳細配置,格式如下:
RRA:Cf:xff:steps:rows
RRA:表明這是一個RRD數據的配置命令。
Cf:存儲內容統計函數,包含AVERAGE, MAX, MIN, LAST四種。
xff是一個影響因子,用於防止一個統計週期內大量數據丟失的情況,默認值是0.5,即允許有50%的數據丟失
steps,即多少個步長進行一次統計,並將數據存儲爲一行。
rows,表示RRD總共存儲多少行數據。
如:step=300 RRA:AVERAGE:0.5:1:2016 表示,存儲5分鐘內的平均值,允許有50%的數據丟失,總共存儲2016條數據
SNMP
<include-collection dataCollectionGroup="MIB2"/> 將SNMP收數據分成組,
每一個組都在$OPENNMS_HOME/etc/datacoll ection中有一個對應的配置文件。
其中配置了每個數據的ID和名字,系統已經自動配置好了大部分的數據,如果有需求可以手動在其中添加。


[color=red]六.閥值Thresholds[/color]
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中查找到


[color=red]七.事件events[/color]
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=">=" 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 >= now()-'2 minutes'::INTERVAL

group by nodeid,ipaddr

having count(nodeid) > 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,但不是必須的。
[color=red]
八.警報 Alarms[/color]
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清除
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章