【zabbix個性化監控之一】TCP連線數
一、在被監控端上設定
主要命令:
1 | netstat -an | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' |
輸出內容:
TIME_WAIT 100
CLOSE_WAIT 5
FIN_WAIT1 6
ESTABLISHED 161
SYN_RECV 1
LAST_ACK 1
LISTEN 11
下面以監控TIME_WAIT的數量為例子(先來準備下指令碼)
1 2 3 4 5 | mkdir -pv /usr/local/shell/zabbix cd /usr/local/shell/zabbix vim tcp_connections.sh |
1 2 3 4 |
#!/bin/bash
netstat -an | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' |
在zabbix_server被監控的節點上編輯zabbix的配置檔案
1 | vim /usr/local/zabbix/etc/zabbix_agentd.conf |
#在256行新增下列內容
UnsafeUserParameters=1
#在265行新增以下內容
UserParameter=TIME_WAIT,/bin/bash /usr/local/shell/zabbix/tcp_connections.sh TIME_WAIT
重啟客戶端
1 | servicezabbix_agentd restart |
二、zabbix_server 端設定
首先看是否能否取到值
1 2 3 | cd/usr/local/zabbix/bin ./zabbix_get-s10.6.5.1-k TIME_WAIT |
如果能獲取到數值,那麼恭喜你成功了。
訪問zabbix web介面,建立模板
建圖形
將模板應用到對應的機器上,繪圖結果如下:
#!/bin/bash
sed -i "s#\# UnsafeUserParameters=0#UnsafeUserParameters=1#g" /usr/local/etc/zabbix_agentd.conf
echo "Include=/usr/local/etc/zabbix_agentd.conf.d/" >>/usr/local/etc/zabbix_agentd.conf
mkdir -p /usr/local/shell/zabbix
cat << EOF >/usr/local/shell/zabbix/tcp_connections.sh
#!/bin/bash
netstat -an |awk '/^tcp/ {++S[\$NF]} END {for(a in S) print a, S[a]}'|grep \$1|cut -d' ' -f2
EOF
cat << EOF >/usr/local/shell/zabbix/zabbix_tcp.sh
#!/bin/bash
netstat -s|grep "connections established"|awk '{print\$1}'
EOF
chmod 755 /usr/local/shell/zabbix/zabbix_tcp.sh
mkdir -p /usr/local/etc/zabbix_agentd.conf.d
cat << EOF >/usr/local/etc/zabbix_agentd.conf.d/tcp
#!monitor tcp
UserParameter=TIME_WAIT,/bin/bash /usr/local/shell/zabbix/tcp_connections.sh TIME_WAIT
UserParameter=CLOSE_WAIT,/bin/bash /usr/local/shell/zabbix/tcp_connections.sh CLOSE_WAIT
UserParameter=ESTABLISHED,/bin/bash /usr/local/shell/zabbix/tcp_connections.sh ESTABLISHED
UserParameter=FIN_WAIT1,/bin/bash /usr/local/shell/zabbix/tcp_connections.sh FIN_WAIT1
UserParameter=LAST_ACK,/bin/bash /usr/local/shell/zabbix/tcp_connections.sh LAST_ACK
UserParameter=LISTEN,/bin/bash /usr/local/shell/zabbix/tcp_connections.sh LISTEN
UserParameter=SYN_RECV,/bin/bash /usr/local/shell/zabbix/tcp_connections.sh SYN_RECV
UserParameter=tcpconnect,/usr/local/shell/zabbix/zabbix_tcp.sh
EOF
service zabbix_agentd restart
幾個監控項的鍵值就是TIME_WAIT、CLOSE_WAIT、ESTABLISHED、FIN_WAIT1、LAST_ACK、LISTEN、SYN_RECV、tcpconnect