2341 发表于 2016-1-12 16:30:32

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.log
netstat -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]
查看完整版本: zabbix监控tcp连接