1.自定义key:监控tcp连接
准备自定义key(业务主机)
[root@webone ~]# vim /etc/zabbix/zabbix_agentd.d/tcp_status.conf
#Format: UserParameter=<key>,<shell command>
UserParameter=tcp.status.listen,ss -an |grep :80 | grep -i 'LISTEN' |wc -l
#过滤出80端口,忽略大小写过略出含有listen的行数
UserParameter=tcp.status.timewait,ss -an |grep :80 | grep -i 'TIME-WAIT' |wc -l
UserParameter=tcp.status.established,ss -an |grep :80 | grep -i 'ESTABLISHED' |wc -l
UserParameter=tcp.status.syn_recv,ss -an |grep :80 | grep -i 'SYN_RECV' |wc -l
UserParameter=tcp.status.syn_sent,ss -an |grep :80 | grep -i 'SYN_SENT' |wc -l
UserParameter=tcp.status.close,ss -an |grep :80 | grep -i 'CLOSE' |wc -l
调用自定义key(zabbix监控服务器)
[root@zabbix ~]# zabbix_get -s webone -k system.uname
Linux webone 3.10.0-862.11.6.el7.x86_64 #1 SMP Tue Aug 14 21:49:04 UTC 2018 x86_64
[root@zabbix ~]# zabbix_get -s webone -k system.cpu.load[all,avg1]
0.020000
[root@zabbix ~]# zabbix_get -s webone -k tcp.status.listen
1
[root@zabbix ~]# zabbix_get -s webone -k tcp.status.timewait
0
[root@zabbix ~]# zabbix_get -s webone -k tcp.status.established
0
[root@zabbix ~]# zabbix_get -s webone -k tcp.status.syn_recv
0
[root@zabbix ~]# zabbix_get -s webone -k tcp.status.syn_sent
0
[root@zabbix ~]# zabbix_get -s webone -k tcp.status.close
0
2.自定义key:监控tcp2连接(使用[传参]来调用)
业务主机
[root@webone ~]# vim /etc/zabbix/zabbix_agentd.conf
#编辑配置打开UserParameter=前的注释,修改为如下
UserParameter=tcp.status[*],ss -an |grep :80 | grep -i "$1" |wc -l
调用自定义key(zabbix监控服务器)
使用[传参]来调用
[root@zabbix ~]# zabbix_get -s webone -k tcp.status[listen]
1
[root@zabbix ~]# zabbix_get -s webone -k tcp.status[timewait]
0
[root@zabbix ~]# zabbix_get -s webone -k tcp.status[TIME-WAIT]
0
[root@zabbix ~]# zabbix_get -s webone -k tcp.status[timewait]
0
[root@zabbix ~]# zabbix_get -s webone -k tcp.status[established]
0
[root@zabbix ~]# zabbix_get -s webone -k tcp.status[syn_recv]
0
[root@zabbix ~]# zabbix_get -s webone -k tcp.status[syn_sent]
0
[root@zabbix ~]# zabbix_get -s webone -k tcp.status[close]
0
3.自定义key:监控tcp连接3
业务主机
1) 下载脚本文件包。并授权zabbix用户
[root@webone ~]# lftp 192.168.122.250
lftp 192.168.122.250:/> mirror zabbix-example/
lftp 192.168.122.250:/> by
[root@webone ~]# chmod -R +x zabbix-example/
[root@webone ~]# chown -R zabbix zabbix-example
2) 拷贝脚本文件至zabbix目录。
[root@webone ~]# cp zabbix-example/tcp_connect_status/tcp_connect_status.sh /etc/zabbix/
3) 增加用户自定义KEY
[root@webone ~]# cp zabbix-example/tcp_connect_status/tcp_connect_status /etc/zabbix/zabbix_agentd.d/tcp_connect_status.conf
4) 将第二步的文件绝对路径复制给第三步的文件中。
[root@webone tcp_connect_status]# cp tcp_connect_status.sh /etc/zabbix/tcp_connect.status/
cp: 无法创建普通文件"/etc/zabbix/tcp_connect.status/": 不是目录
[root@webone tcp_connect_status]# mkdir /etc/zabbix/tcp_connect.status/
[root@webone tcp_connect_status]# cp tcp_connect_status.sh /etc/zabbix/tcp_connect.status/
5) 重启 zabbix-agent.service
[root@webone ~]# systemctl restart zabbix-agent.service
zabbix监控端
1) zabbix-server执行验证
[root@zabbix ~]# zabbix_get -s webone -k tcp.connect.status[LISTEN]
7
与业务主机端查询一致
[root@webone tcp_connect_status]# netstat -an |grep ^tcp |grep LISTEN |wc -l
7
[root@webone tcp_connect_status]# netstat -an |grep ^tcp |grep LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 ::1:25 :::* LISTEN
tcp6 0 0 :::10050 :::* LISTEN
tcp6 0 0 :::80 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN