zabbix 监控项自动发现过滤_Zabbix5.2由浅入深之官方自动发现规则初探(网络篇)
今天的主題是官方模板的自動發(fā)現(xiàn)規(guī)則分析,在監(jiān)控工作中常常會遇到一些可變化的OID值,也就是父OID+索引,而索引本身是變化的,如果監(jiān)控設(shè)備數(shù)量固定,一個個寫問題不大,但在規(guī)模增加到一定程度手動添加已然不現(xiàn)實,而且不太靈活,所以官方在2.X版本后新增加自動發(fā)現(xiàn)規(guī)則功能。
正文
在開始之前呢,首先我們要了解什么樣的情況下需要用到自動規(guī)則,我舉個例子,以端口名稱為例。OID為1.3.6.1.2.1.31.1.1.1.1,該OID解釋如下。
OID介紹
用snmpwalk測試,順帶還是提下snmpwalk的使用方法吧,斜體為變量,也就是你自己的環(huán)境
snmpwalk -v snmp版本 -c 團(tuán)體字密碼 IP地址 OID,如果沒有snmpwalk,CentOS需要裝net-snmp-utils,ubuntu環(huán)境需要裝snmp。
snmwalk -v 2c -c huawei@123?10.240.43.2 1.3.6.1.2.1.31.1.1.1.1通過上圖我們看到查詢的結(jié)果有59條規(guī)則,如果用這個OID去加監(jiān)控項一定有問題,得出是多個值,所以根本就不知道要檢查什么。所以自動發(fā)現(xiàn)規(guī)則應(yīng)運(yùn)而生。
Interfaces SNMP
Zabbix 5.2版本模板名稱叫Inerface SNMP,如果是5.2以下(不包含5.2)叫Template Module Interfaces SNMPv2。自動發(fā)現(xiàn)規(guī)則(Discover rules)位置如下圖紅框所示。
進(jìn)入到該規(guī)則里
自動發(fā)現(xiàn)規(guī)則的內(nèi)容與監(jiān)控項很類似,需要注意的是SNMP OID項的固定格式
discovery[{#MACROS1},OID1,{#MACROS2},OID2....]- 名字(Name):自定義即可
- 類型(Type):選擇SNMP AGENT
- 鍵值(Key):其實也可以隨便寫,方便記,但是在同一臺設(shè)備里必須要保持唯一性。
- SNMP OID:簡單來說就是設(shè)備里各個組件的編碼,例如windows里的注冊表
- 更新周期(Update interval):多久更新一次,如果監(jiān)控項需要發(fā)現(xiàn),可以在被監(jiān)控主機(jī)里點擊惡心excute now。
- 自定義時間間隔(Custom intervals):可以更加靈活的控制更新
- 資源周期不足(Keep lost resources period):這個中文翻譯有點問題,這里的意思是代表如果該監(jiān)控選項無法發(fā)現(xiàn)了,什么時候取消監(jiān)控,如下圖二
頁面內(nèi)容
出現(xiàn)監(jiān)控項無法自動發(fā)現(xiàn)保留周期
宏(Macros)
宏其實一直是zabbix比較關(guān)鍵的點,類似變量,格式為{$MACROS},值可以為文本,也可以為正則表達(dá)式,宏的名稱也可自己隨便取,例如下方的{$NET.IF.IFNAME.MATCHES}可以寫成{$IFNAME.MATCHES},后面的取值就隨意了,根據(jù)不同功能寫,例如這里的{$NET.IF.IFNAME.MATCHES}對應(yīng)的應(yīng)該是接口名稱,如果我只想匹配g0/0/1口,值就是g0/0/1,如果想匹配所有的g口,那值就是^g,關(guān)于正則表達(dá)式可以去百度上搜,有很多教程,不需要太復(fù)雜,能用就行。
該模板宏一覽
過濾器(Filters)
上篇我們講過,過濾器主要用于過濾一些不想要的規(guī)則,組成部分也很簡單,就計算類型和宏。那么我們來解析下該模板里的過濾器,一共包含12個(正反6類)分別是
- {#IFADMINSTATUS}(端口管理狀態(tài)):是否為admin down
{#IFALIAS}(端口描述)
{#IFDESCR}(端口名稱)
{#IFNAME}(端口名稱):這個和上面的重復(fù)了,理論上可以不要
{#IFOPERSTATUS}(端口狀態(tài)):down還是up
{#IFTYPE}(端口類型):是千兆口還是百兆口還是vlan啥的,文末我會貼出該例子的OID詳細(xì)解釋。
那么為什么需要用到這么多參數(shù),其實挺簡單的,都是為優(yōu)化監(jiān)控項服務(wù)的,當(dāng)然如果你的網(wǎng)絡(luò)設(shè)備配置都是標(biāo)準(zhǔn)化,那就沒這么折騰了,例如你的交換機(jī)上聯(lián)口都是固定的,那么過濾就只需要一項,{#IFNAME}的宏取值只用寫該端口即可。但是如果是非標(biāo),那么這些就大有用處了,你發(fā)現(xiàn)少一項就感覺很困難,我們一般篩選相關(guān)端口通過這4個維度
- 端口名稱
- 端口類型
- 端口描述
- 端口狀態(tài)
所以從這個角度思考,官方這個模板的自動發(fā)現(xiàn)規(guī)則的過濾器還是比較合理的。
過濾器一覽
監(jiān)控原型
監(jiān)控原型里面對的就是生成相對應(yīng)的監(jiān)控項,原版有9個,和端口相關(guān)指標(biāo)息息相關(guān),分別是端口入出流量、端口類型、端口狀態(tài),端口入出錯包、端口入出丟包、端口速率,其中個人感覺端口類型沒有什么太大必要,當(dāng)然有需要的可以監(jiān)控起來。
原版監(jiān)控原型一覽
以Interface {#IFNAME}({#IFALIAS}): Bits received這個為例,需要注意的是Key和SNMP OID都帶有{#SNMPINDEX}。
官方模板監(jiān)控項原型一覽
通過主機(jī)上查看該接口,有一段描述,ifindex:5
主機(jī)獲取
通過snmpwalk原OID+5可以獲取到該接口的信息,那么到這里是不是就明白了自動發(fā)現(xiàn)規(guī)則的原理,其實zabbix里隱藏了兩個宏,一個叫{#SNMPINDEX},一個叫{#SNMPVALUE},其中snmpindex就是這些具備同OID多個取值后的索引,而SNMPVALUE就是這些多個索引對應(yīng)的取值,以下圖為例,5為索引,10GE1/0/1為該索引的SNMPVALUE。Zabbix就是利用這個實現(xiàn)了自動發(fā)現(xiàn)規(guī)則的功能,當(dāng)然代碼級別實現(xiàn)肯定不會這么簡單,但你要清楚前端的邏輯是什么,其次鍵值為什么要加這個,還記得我當(dāng)初說的鍵值在同主機(jī)下要唯一,所以加上了該宏,保持鍵值唯一,其他的內(nèi)容就基本沒啥講的
最終效果
最終發(fā)現(xiàn)效果
總結(jié)
寫了這么多,其實也為后面的制作自動規(guī)則服務(wù)的,其實大家可以大概的了解是怎么回事了,包括應(yīng)用場景,可以想到還有框式設(shè)備多板卡,多CPU、Wlan等等,可以自己嘗試寫這些自動發(fā)現(xiàn)規(guī)則,簡單來說流程是找到相對應(yīng)的OID---監(jiān)控指標(biāo)確定---宏的定義---定義過濾器的規(guī)則---創(chuàng)建自動發(fā)現(xiàn)規(guī)則---創(chuàng)建監(jiān)控原型---創(chuàng)建觸發(fā)器---創(chuàng)建圖形,最后用在設(shè)備里。還是那句話:路漫漫其修遠(yuǎn)兮,吾將上下而求索,我是IT小白Kasar,下期見!(下期制作自動發(fā)現(xiàn)規(guī)則)
附錄
ifName
ifHCInOctets
ifHCOutOctets
ifAlias
ifDescr
ifType
ifSpeed
ifInDiscards
ifInErrors
ifOutDiscards
ifOutErrors
總結(jié)
以上是生活随笔為你收集整理的zabbix 监控项自动发现过滤_Zabbix5.2由浅入深之官方自动发现规则初探(网络篇)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我40级6w有救么?
- 下一篇: 为什么这么多人哈韩、哈日、又哈欧美?