需求自動發現網卡並監控每小時的總流量。
自定義的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
接着創建:
頁面如下:
先看看正則表達式吧。
下面的就不囉嗦了,對於你們來說應該是很簡單的
正則弄明白了,{#NETPORT}又是哪兒來的?
現在都明白了吧。那我們繼續創建2個監控項,input和output
再添加一個graph。就不再上圖了。
最後看結果:
low-level discovery 挺簡單吧。