運維自動化之zabbix ( low-level discovery)(10)

需求自動發現網卡並監控每小時的總流量。


自定義的key如下:

[root@localhost zabbix_agentd.conf.d]# cat Traffic_statistics.conf
UserParameter=Interface.Discovery,awk -F '[: \t]+' 'NR>2{b[++n]=$2}END{printf "{\n\t\"data\":[\n";for(i=0;i++<n;){printf "\t\t{\n\t\t\t\"{#NETPORT}\":\"%s\"}",b[i];if(i<n)print ","};print "]}"}'  /proc/net/dev
UserParameter=Interface.Input[*], awk -F '[: \t]+' -vIF=$1 'NR>2{for(i=1;i<=NF;i++)if($$i==IF)print $$(i+1)}' /proc/net/dev
UserParameter=Interface.Output[*],awk -F '[: \t]+' -vIF=$1 'NR>2{for(i=1;i<=NF;i++)if($$i==IF)print $$(i+9)}' /proc/net/dev
[root@localhost zabbix_agentd.conf.d]#
[root@localhost zabbix_agentd.conf.d]# awk -F '[: \t]+' 'NR>2{b[++n]=$2}END{printf "{\n\t\"data\":[\n";for(i=0;i++<n;){printf "\t\t{\n\t\t\t\"{#NETPORT}\":\"%s\"}",b[i];if(i<n)print ","};print "]}"}'  /proc/net/dev
{
        "data":[
                {
                        "{#NETPORT}":"lo"},
                {
                        "{#NETPORT}":"eth0"}]}
[root@localhost zabbix_agentd.conf.d]#
[root@localhost zabbix_agentd.conf.d]#
[root@localhost zabbix_agentd.conf.d]# awk -F '[: \t]+' -vIF=eth0 'NR>2{for(i=1;i<=NF;i++)if($i==IF)print $(i+1)}' /proc/net/dev
38349889980


wKiom1MGxHGBmL3fAAIPqKY8NZo766.jpg


接着創建:

wKioL1MGxJ6yTp3kAAGzOCu1w5w353.jpg


頁面如下:

wKiom1MGxUSihvAzAAH9M3ZSVkM852.jpg


先看看正則表達式吧。

wKiom1MGxaPh73CvAALhDudvTeU215.jpg



下面的就不囉嗦了,對於你們來說應該是很簡單的

wKiom1MGxiyQ7fzDAAHzfN8wZwM840.jpg


正則弄明白了,{#NETPORT}又是哪兒來的?

wKioL1MGxpyhJT0hAADhY7LZJXc678.jpg


現在都明白了吧。那我們繼續創建2個監控項,input和output

wKiom1MGx6GzIHYBAAJsY9NSyAE734.jpg

再添加一個graph。就不再上圖了。


最後看結果:


wKioL1MGx_WBSZBiAAXCBMF1iQ0827.jpg


low-level discovery 挺簡單吧。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章