zabbix监控tcp连接 1、编辑客户端监控脚本 vim /usr/local/zabbix_agentd/bin/script/tcp #!/bin/bash source /etc/bashrc >/dev/null 2>&1 source /etc/profile >/dev/null 2>&1 LOG_FILE=/tmp/tcp_connect.log
netstat -n|awk '/^tcp/ {++S[$NF]} END {for (a in S) print a,S[a]}' > ${LOG_FILE} Permission=$(ls -l ${LOG_FILE} |awk '{print $3}') [ "$Permission" != zabbix ] && chown zabbix.zabbix /tmp/tcp_connect.log
#Functions to return tcp connect status
established () { VALUE=$(awk '/ESTABLISHED/ {print $2}' ${LOG_FILE}) [ "${VALUE}" != "" ] && echo ${VALUE}|| echo 0 } listen () { VALUE=$(awk '/LISTEN/ {print $2}' ${LOG_FILE}) [ "${VALUE}" != "" ] && echo ${VALUE}|| echo 0 } timewait () { VALUE=$(awk '/TIME_WAIT/ {print $2}' ${LOG_FILE}) [ "${VALUE}" != "" ] && echo ${VALUE}|| echo 0 } timeclose () { VALUE=$(awk '/TIME_CLOSE/ {print $2}' ${LOG_FILE}) [ "${VALUE}" != "" ] && echo ${VALUE}|| echo 0 } finwait1 () { VALUE=$(awk '/FIN_WAIT1/ {print $2}' ${LOG_FILE}) [ "${VALUE}" != "" ] && echo ${VALUE}|| echo 0 }
finwait2 () { VALUE=$(awk '/FIN_WAIT2/ {print $2}' ${LOG_FILE}) [ "${VALUE}" != "" ] && echo ${VALUE}|| echo 0 }
synsent () { VALUE=$(awk '/SYN_SENT/ {print $2}' ${LOG_FILE}) [ "${VALUE}" != "" ] && echo ${VALUE}|| echo 0 } synrecv () { VALUE=$(awk '/SYN_RECV/ {print $2}' ${LOG_FILE}) [ "${VALUE}" != "" ] && echo ${VALUE}|| echo 0 } closewait () { VALUE=$(awk '/CLOSE_WAIT/ {print $2}' ${LOG_FILE}) [ "${VALUE}" != "" ] && echo ${VALUE}|| echo 0 }
# Run the requested function case "$1" in established) established ;; listen) listen ;; timewait) timewait ;; timeclose) timeclose ;; finwait1) finwait1 ;; finwait2) finwait2 ;; synsent) synsent ;; synrecv) synrecv ;; closewait) closewait ;; *) echo "Usage: $0 { established|listen|timewait|timeclose|finwait1|finwait2|synsent|synrecv|closewait}" ;; esac 2、修改zabbix客户端配置文件,添加如下信息
UserParameter=TCP_Established,/usr/local/zabbix_agentd/bin/script/tcp establishedUserParameter=TCP_listen,/usr/local/zabbix_agentd/bin/script/tcp listen
UserParameter=TCP_timewait,/usr/local/zabbix_agentd/bin/script/tcp timewait
UserParameter=TCP_timeclose,/usr/local/zabbix_agentd/bin/script/tcp timeclose
UserParameter=TCP_finwait1,/usr/local/zabbix_agentd/bin/script/tcp finwait1
UserParameter=TCP_synsent,/usr/local/zabbix_agentd/bin/script/tcp synsent
UserParameter=TCP_synrecv,/usr/local/zabbix_agentd/bin/script/tcp synrecv
UserParameter=TCP_closewait,/usr/local/zabbix_agentd/bin/script/tcp closewait
重启zabbix_agentd 服务
service zabbix_agentd restar
3、测试zabbix 是否获取到tcp连接数
/usr/local/zabbix_agentd/bin/zabbix_get -s 127.0.0.1 -k TCP_Established
netstat -n|awk '/^tcp/ {++S[$NF]} END {for (a in S) print a,S[a]}'
对比 established的值是否相等
客户端检查正常后再zabbix服务端进行测试
/usr/local/zabbix/bin/zabbix_get -s 客户端ip -k TCP_Established
4、添加监控
|