zabbix3.0对tcp连接数和状态的监控优化

本文介绍了如何使用ss命令替换netstat以优化zabbix3.0对TCP连接状态的监控,避免在服务器高负载时占用大量CPU资源。通过创建和配置bash脚本以及设置zabbix-agent的UserParameter,实现了对不同TCP状态(如SYN-RECV、ESTAB等)的监控。最后,在zabbix server端进行测试并配置web界面。
摘要由CSDN通过智能技术生成

zabbix3.0对tcp连接数及状态的监控优化

之前对tcp的监控采用netstat命令,发现在服务器繁忙的时候效果不理想,这个命令占用大量的cpu有时候高达90%以上,可能会导致业务的不稳定,所以改用ss命令对脚本进行优化


在需要被监控的zabbix-agent端添加脚本编写
创建文件夹
mkdir -p /usr/local/zabbix-agent/scripts/
mkdir -p /etc/zabbix/zabbix_agentd.d/
vim /usr/local/zabbix-agent/scripts/tcp_status_ss.sh


#!/bin/bash 
#scripts for tcp status 
function SYNRECV { 
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'SYN-RECV' | awk '{print $2}'

function ESTAB { 
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'ESTAB' | awk '{print $2}'

function FINWAIT1 { 
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'FIN-WAIT-1' | awk '{print $2}'

function FINWAIT2 { 
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'FIN-WAIT-2' | awk '{print $2}'

function TIMEWAIT { 
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'TIME-WAIT' | awk '{print $2}'

function LASTACK { 
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'LAST-ACK' | awk '{print $2}'

function LISTEN { 
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'LISTEN' | awk '{print $2}'

$1

或者


 

#!/bin/bash 
#scripts for tcp status
function SYNRECV { 
/usr/sbin/ss -s | grep 'synrecv' | awk '{print $2}'
} 
function ESTAB { 
/usr/sbin/ss -s | grep 'estab' | awk '{print $2}'
} 
function FINWAIT1 { 
/usr/sbin/ss -o |  grep 'FIN-WAIT-1'|wc -l
} 
function FINWAIT2 { 
/usr/sbin/ss -ant| grep 'FIN-WAIT-2' | wc -l
} 
function TIMEWAIT { 
/usr/sbin/ss -ant | grep 'TIME-WAIT' | wc -l
} 
function LASTACK { 
/usr/sbin/ss -ant | grep 'LAST-ACK' | wc -l
} 
function LISTEN { 
/usr/sbin/ss -ant | grep 'LISTEN' | wc -l
} 
$1

 


 

赋予脚本执行权限
chmod +x /usr/local/zabbix-agent/scripts/tcp_status_ss.sh 


二、填写key值:当然大家在加入key值之后最好再服务器上面去执行看有没有返回值:


vim /etc/zabbix/zabbix_agentd.d/tcp_status_ss.conf


#monitor tcp 
UserParameter=tcp[*],/usr/local/zabbix-agent/scripts/tcp_status_ss.sh $1


重启agent
service zabbix-agent restart


zabbix-server服务端测试
zabbix_get -s 192.168.3.18 -p 10050 -k

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值