1. 程式人生 > >【zabbix個性化監控之一】TCP連線數

【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]}'
 | grep $1| cut -d’ ‘ -f2 //指令碼依賴上面的主要命令

在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介面,建立模板

1

建圖形

2

將模板應用到對應的機器上,繪圖結果如下:

3到此,zabbix自定義監控某主機的tcp連線數搞定。



#!/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