需求自动发现网卡并监控每小时的总流量。
自定义的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 挺简单吧。
运维自动化之zabbix ( low-level discovery)(10)
原文:http://wang390750.blog.51cto.com/8599831/1361585