TCP连接状态
监控 TCP连接状态
TCP连接核心监控点
- ESTAB 建立连接的数量
- TIME-WAIT 等待连接关闭数量
准备监控tcp连接数脚本
- 脚本是放在被监控的主机上的
[root@nginx-web1 ~]# vim /etc/zabbix/zabbix_agentd.d/tcp_conn_stat.sh
#!/bin/bash
#Author:Xiang Zheng
tcp_conn_status(){
TCP_STAT=$1
ss -nta | awk 'NR>1 {++s[$1]} END {for(k in s) print k,s[k]}' > /tmp/tcp_conn.txt
TCP_NUM=$(grep "$TCP_STAT" /tmp/tcp_conn.txt | cut -d ' ' -f2)
if [ -z $TCP_NUM ];then
TCP_NUM=0
fi
echo $TCP_NUM
}
main(){
case $1 in
tcp_status)
tcp_conn_status $2;
;;
esac
}
main $1 $2agent中添加自定义监控项
- 说明:
- Format: UserParameter=
, - tcp_status[*] 表示key的名称和接受的参数,[ ]表示接受的参数,[*]表示所有参数
- /bin/bash 表示执行的命令,通常写绝对路径
- “$1” “$2” 表示接受的参数,参数来自tcp_status后面括号中的内容
[root@nginx-web1 ~]# vim /etc/zabbix/zabbix_agentd.conf
...
UserParameter=tcp_status[*],/bin/bash /etc/zabbix/zabbix_agentd.d/tcp_conn_stat.sh "$1" "$2"
...
#修改配置文件后重启服务使其生效
[root@nginx-web1 ~]# systemctl restart zabbix-agent.service 测试脚本是否有效
- proxy或server进行测试
[root@zabbix-server ~]# zabbix_get -s 10.0.0.28 -p 10050 -k 'tcp_status[tcp_status,LISTEN]'
4
[root@zabbix-server ~]# zabbix_get -s 10.0.0.28 -p 10050 -k 'tcp_status[tcp_status,TIME-WAIT]'
2web界面配置
- 配置 –> 主机 –> 选择主机 –> 监控项 –> 创建监控项
- 名称 如:tcp已连接统计
- 类型 如:Zabbix客户端(主动式)
- 键值 如:tcp_status[tcp_status,ESTAB]
- 配置 –> 主机 –> 选择主机 –> 监控项 –> 创建图形
- 名称 如:tcp已连接统计
- 监控项 如:tcp已连接统计