Zabbix自带的对于Linux系统基础监控模板虽然常见的CPU、内存、磁盘、网卡、进程等都有监控,但是没有网络连接状态监控和磁盘IO监控。下面给出网络连接状态监控方法。
在zabbix-agent端/etc/zabbix/zabbix_agentd.d/目录下添加一个配置文件。
1 |
cat /etc/zabbix/zabbix_agentd.d/userparameter_tcp.conf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
UserParameter=socket.tcp_listen,ss state all |grep "\bLISTEN\b" |wc -l UserParameter=socket.tcp_synsent,ss state all |grep "\bSYN-SENT\b" |wc -l UserParameter=socket.tcp_synrecv,ss state all |grep "\bSYN-RECV\b" |wc -l UserParameter=socket.tcp_established,ss -s |awk '/estab/ {print $4}' |cut -d',' -f1 UserParameter=socket.tcp_finwait1,ss state all |grep "\bFIN-WAIT1\b" |wc -l UserParameter=socket.tcp_finwait2,ss state all |grep "\bFIN-WAIT2\b" |wc -l UserParameter=socket.tcp_closewait,ss state all |grep "\bCLOSE-WAIT\b"|wc -l UserParameter=socket.tcp_closing,ss state all |grep "\bCLOSING\b" |wc -l UserParameter=socket.tcp_lastack,ss state all |grep "\bLAST-ACK\b" |wc -l UserParameter=socket.tcp_timewait,awk '/TCP:/ {print $7}' /proc/net/sockstat ##### UserParameter=socket.total_sockets,awk '/sockets:/ {print $3}' /proc/net/sockstat UserParameter=socket.tcp_inuse,awk '/TCP:/ {print $3}' /proc/net/sockstat UserParameter=socket.tcp_orphan,awk '/TCP:/ {print $5}' /proc/net/sockstat UserParameter=socket.tcp_alloc,awk '/TCP:/ {print $9}' /proc/net/sockstat UserParameter=socket.tcp_mem,awk '/TCP:/ {print $11}' /proc/net/sockstat UserParameter=socket.udp_inuse,awk '/UDP:/ {print $3}' /proc/net/sockstat |
这个配置文件就是创建各种key,然后取出对应的值,在zabbix-agent端测试一下,先记得重启一下zabbix-agent。
1 2 |
$ zabbix_agentd -t socket.tcp_established socket.tcp_established [t|10] |
返回结果如上就表示配置没有问题了,接下来就是直接在zabbix服务端引用就OK了。
在zabbix页面创建一个模块或者引用现有的模板都行,直接添加一个item即可,如下图。
更新完,这个item就可用了。最后要做的就是把模板链接到对应的主机上即可。
按照上面这个方法,把userparameter_tcp.conf配置文件里面的key全部手动添加一下即可。最终结果如下图: