日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

OpenNMS全接触-事件及通知(九)

發(fā)布時(shí)間:2023/12/19 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenNMS全接触-事件及通知(九) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?在上一篇文章OpenNMS全接觸-事件及通知(八)中,介紹了OpenNMS在收到受管設(shè)備發(fā)出的SNMP Trap之后,如何將收到的SNMP Trap與eventconf.xml文件中定義的事件(event)進(jìn)行匹配,從而觸發(fā)該事件的發(fā)生。主要是引入了<mask>標(biāo)簽元素。在此基礎(chǔ)上,OpenNMS還提供了根據(jù)SNMP Trap帶上來(lái)的varbinds對(duì)SNMP Trap進(jìn)一步過(guò)濾。

我們還是以ciscoC3800SysAggregateStatusChange事件為例,當(dāng)Cisco C3800的Aggregate狀態(tài)發(fā)生變化時(shí),便會(huì)發(fā)出SNMP Trap,并觸發(fā)該事件。然而該事件的嚴(yán)重度如何?該狀態(tài)變化是“好”(比如由不可操作變?yōu)榭刹僮?#xff09;還是“壞”(由可操作變?yōu)椴豢刹僮?#xff09;?其實(shí)這個(gè)信息在發(fā)上來(lái)的SNMP Trap中就已經(jīng)包含了,其對(duì)應(yīng)的就是parm中的第三個(gè)參數(shù),即trap的嚴(yán)重度等級(jí)。

OpenNMS從1.1版本開始,就加入了根據(jù)varbinds對(duì)SNMP trap進(jìn)行過(guò)濾的功能。這也是通過(guò)在<mask>中實(shí)現(xiàn)的,我們可以重寫OpenNMS全接觸-事件及通知(八)中提到的event中的mask元素:

?

  • <mask>?
  • ??<maskelement>?
  • ????<mename>id</mename>?
  • ????<mevalue>.1.3.6.1.4.1.9.9.70.2</mevalue>?
  • ??</maskelement>?
  • ??<maskelement>?
  • ????<mename>generic</mename>?
  • ????<mevalue>6</mevalue>?
  • ??</maskelement>?
  • ??<maskelement>?
  • ????<mename>specific</mename>?
  • ????<mevalue>17</mevalue>?
  • ??</maskelement>?
  • ??<varbind>?
  • ????<vbnumber>3</vbnumber>?
  • ????<vbvalue>3</vbvalue>?
  • ??</varbind>?
  • </mask>?
  • 在原來(lái)的基礎(chǔ)上加入了<varbind>元素,加入該元素后,那么該匹配條件就更嚴(yán)格,在原來(lái)的基礎(chǔ)上,即OID為.1.3.6.1.4.1.9.9.70.2,且generic為6,而specific為17,又加入了對(duì)第三個(gè)參數(shù)即trap serverity只

    關(guān)注等級(jí)為3的snmp trap,當(dāng)然這里的等級(jí)3是由設(shè)備在發(fā)送snmp trap時(shí)確定的。比如這里的3代表著Cisco給定的等級(jí)“主要的”。

    當(dāng)然,我們還可以通過(guò)多個(gè)varbinds對(duì)snmp trap進(jìn)行過(guò)濾。例如:

    ?

  • <varbind>?
  • ??<vbnumber>3</vbnumber>?
  • ??<vbvalue>2</vbvalue>?
  • ??<vbvalue>3</vbvalue>?
  • </varbind>?
  • <varbind>?
  • ??<vbnumber>4</vbnumber>?
  • ??<vbvalue>2</vbvalue>?
  • ??<vbvalue>3</vbvalue>?
  • </varbind>?
  • 該過(guò)濾條件將匹配出第3個(gè)參數(shù)為2或者3,第4個(gè)參數(shù)為2或者3的snmp trap。

    從OpenNMS1.6版本開始,還加入了通過(guò)正則表達(dá)式對(duì)varbinds的值進(jìn)行過(guò)濾,只要在表達(dá)式之前加~

    ?

  • <varbind>?
  • ??<vbnumber>1</vbnumber>?
  • ??<vbvalue>~[Dd]own</vbvalue>?
  • </varbind>?
  • 該過(guò)濾條件將過(guò)濾出第1個(gè)參數(shù)取值為“Down”或者“down"。

    另外還可以通過(guò)通配符%進(jìn)行快速前綴匹配,如:

    ?

  • <varbind>?
  • ??<vbnumber>1</vbnumber>?
  • ??<vbvalue>Error:%</vbvalue>?
  • </varbind>?
  • 這將會(huì)匹配出所有第一個(gè)參數(shù)以Error:開頭的所有值。

    很多MIB庫(kù)對(duì)某些OID的值進(jìn)行了編碼,即分配了一些特定值,例如snmp agent對(duì)ifAdminStatus及ifOperStatus就進(jìn)行了編碼處理:1代表Up,2代表Down。

    而因?yàn)镺penNMS沒(méi)有自帶的Mib Browser,所以O(shè)penNMS是將這種映射關(guān)系定義在event的事件描述中的。只要event配置正確,也可以在event的logmsg中將snmp trap中帶的數(shù)值轉(zhuǎn)換為更有意義的字符描述信息。

    讓我們以Cisco?HSRP 的狀態(tài)變化為例,(該trap對(duì)應(yīng)的OID .1.3.6.1.4.1.9.9.106.2 generic 6 and specific 1),對(duì)應(yīng)的事件為uei.opennms.org/vendor/Cisco/traps/cHsrpStateChange。

    該trap中包含有一個(gè)varbind,其名稱為cHsrpGrpStandbyState,其取值范圍為從1到6,含義如下:

    initial(1) learn(2) listen(3) speak(4) standby(5) active(6).

    該事件的原始定義如下:

    ?

  • <event>?
  • ?<mask>?
  • ??<maskelement>?
  • ???<mename>id</mename>?
  • ???<mevalue>.1.3.6.1.4.1.9.9.106.2</mevalue>?
  • ??</maskelement>?
  • ??<maskelement>?
  • ???<mename>generic</mename>?
  • ???<mevalue>6</mevalue>?
  • ??</maskelement>?
  • ??<maskelement>?
  • ???<mename>specific</mename>?
  • ???<mevalue>1</mevalue>?
  • ??</maskelement>?
  • ?</mask>?
  • ?<uei>uei.opennms.org/vendor/Cisco/traps/cHsrpStateChange</uei>?
  • ?<event-label>CISCO-HSRP-MIB?defined?trap?event:?cHsrpStateChange</event-label>?
  • ?<descr><p>A?cHsrpStateChange?notification?is?sent?when?a?
  • ?cHsrpGrpStandbyState?transitions?to?either?active?or?
  • ?standby?state,?or?leaves?active?or?standby?state.?There?
  • ?will?be?only?one?notification?issued?when?the?state?change?
  • ?is?from?standby?to?active?and?vice?versa.</p><table>?
  • ?<tr><td><b>?
  • ?cHsrpGrpStandbyState</b></td><td>%parm[#1]%?
  • ?</td><td><p;>?
  • ?initial(1)?learn(2)?listen(3)?speak(4)?standby(5)?active(6)</p>?
  • ?</td;></tr></table>?
  • ?</descr>?
  • ?<logmsg?dest='logndisplay'><p>Cisco?Event:?HSRP?State?Change.</p></logmsg>?
  • ?<severity>Minor</severity>?
  • ?</event>?
  • 現(xiàn)在我們要求在事件的logmsg中看到狀態(tài)變化的值,即要求包含有cHsrpGrpStandbyState的當(dāng)前值。而直接將其取值如2,顯示在logmsg中是沒(méi)有多大意義的,除非用戶自己知道

    這個(gè)數(shù)字的含義。那么現(xiàn)在我們就可以通過(guò)varbind解碼的方法將這個(gè)值映射為其字符串描述即learn。

    ?

  • <event>?
  • ?<mask>?
  • ??<maskelement>?
  • ???<mename>id</mename>?
  • ???<mevalue>.1.3.6.1.4.1.9.9.106.2</mevalue>?
  • ??</maskelement>?
  • ??<maskelement>?
  • ???<mename>generic</mename>?
  • ???<mevalue>6</mevalue>?
  • ??</maskelement>?
  • ??<maskelement>?
  • ???<mename>specific</mename>?
  • ???<mevalue>1</mevalue>?
  • ??</maskelement>?
  • ?</mask>?
  • ?<uei>uei.opennms.org/vendor/Cisco/traps/cHsrpStateChange</uei>?
  • ?<event-label>CISCO-HSRP-MIB?defined?trap?event:?cHsrpStateChange</event-label>?
  • ?<descr><p>A?cHsrpStateChange?notification?is?sent?when?a?
  • ?cHsrpGrpStandbyState?transitions?to?either?active?or?
  • ?standby?state,?or?leaves?active?or?standby?state.?There?
  • ?will?be?only?one?notification?issued?when?the?state?change?
  • ?is?from?standby?to?active?and?vice?versa.</p><table>?
  • ?<tr><td><b>?
  • ?cHsrpGrpStandbyState</b></td><td>%parm[#1]%?
  • ?</td><td><p;>?
  • ?initial(1)?learn(2)?listen(3)?speak(4)?standby(5)?active(6)</p>?
  • ?</td;></tr></table>?
  • ?</descr>?
  • ?<logmsg?dest='logndisplay'><p>Cisco?Event:?HSRP?State?Change?to?%parm[#1]%.</p></logmsg>?
  • ?<severity>Minor</severity>?
  • ?<varbindsdecode>?
  • ?<parmid>parm[#1]</parmid>?
  • ?<decode?varbindvalue="1"?varbinddecodedstring="initial"/>?
  • ?<decode?varbindvalue="2"?varbinddecodedstring="learn"/>?
  • ?<decode?varbindvalue="3"?varbinddecodedstring="listen"/>?
  • ?<decode?varbindvalue="4"?varbinddecodedstring="speak"/>?
  • ?<decode?varbindvalue="5"?varbinddecodedstring="standby"/>?
  • ?<decode?varbindvalue="6"?varbinddecodedstring="active"/>?
  • ?</varbindsdecode>?
  • </event>?
  • 那么在該定義中,第一個(gè)參數(shù)varbind將通過(guò)<varbindsdecode>定義的映射關(guān)系將其取值替換為字符描述。例如,如果該snmp trap的第一個(gè)參數(shù)其值為6的話,則在logmsg中將顯示:

    <p>Cisco?Event:?HSRP?State?Change?to?active</p>

    在后續(xù)文章中將介紹如何根據(jù)MIB庫(kù)中定義的trap轉(zhuǎn)換為eventconf.xml文件中的事件。

    ?

    轉(zhuǎn)載于:https://blog.51cto.com/njulinq/291192

    總結(jié)

    以上是生活随笔為你收集整理的OpenNMS全接触-事件及通知(九)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。