zabbix监控tcp连接
zabbix监控tcp连接1、编辑客户端监控脚本vim /usr/local/zabbix_agentd/bin/script/tcp#!/bin/bashsource /etc/bashrc >/dev/null 2>&1source /etc/profile >/dev/null 2>&1LOG_FILE=/tmp/tcp_connect.lognetstat -n|awk '/^tcp/ {++S[$NF]} END {for (a in S) print a,S}' > ${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 functioncase "$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}" ;;esac2、修改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 -kTCP_Established
netstat -n|awk '/^tcp/ {++S[$NF]} END {for (a in S) print a,S}'
对比 established的值是否相等
客户端检查正常后再zabbix服务端进行测试
/usr/local/zabbix/bin/zabbix_get -s 客户端ip -kTCP_Established
4、添加监控
页:
[1]