Zabbix 應用 – 設定 TCP/UDP 連線狀態 ( Linux & Windows )

心得:

用來觀察機器本身的 TCP 連線數量,確保其運作能力

如果沒有安裝過 Zabbix Server 或 Zabbix Agent 的可以參考

CentOS 7 的 Zabbix 應用 – 設定 Agent 並自動加入監控 ( 2019-0530 更新 )

CentOS 7 的 Zabbix 應用 – 透過 Docker 啟動

設定 ( Linux ):

首先下載 Template 後,匯入到 Zabbix Server 上

https://github.com/tanrakukairo/zabbix_template_tcp_connections/blob/master/3.4_tcp_templates.xml

到 Client 端,建立 Zabbix Agent 的設定檔案,放到合適的位置上

# vim /etc/zabbix/zabbix_agentd.d/userparameter_tcp.conf

檔案內容如下:

# ~> Zabbix3.4
UserParameter=tcp_conn.json,/var/lib/zabbix/json_item_tcp.sh

建立執行檔案

# vim /var/lib/zabbix/json_item_tcp.sh

檔案內容如下:

#!/bin/bash
# for Linux

STATS=(UNKNOWN:0 ESTABLISHED:0 SYN_SENT:0 SYN_RECV:0 FIN_WAIT1:0 FIN_WAIT2:0 TIME_WAIT:0 CLOSED:0 CLOSE_WAIT:0 LAST_ACK:0 LISTEN:0 CLOSING:0)
CONN="$(awk '{print $4}' /proc/net/tcp /proc/net/tcp6 | grep -v st | sort | uniq -c | sed -e s/' 0'/' '/g -e s/'A'/'10'/g -e s/'B'/'11'/g | awk '{print $2":"$1}')"

if [ ! -z "$CONN" ];then
for s in $CONN
do
STATS[${s%%:*}]=${STATS[${s%%:*}]%%:*}":"${s#*:}
done
fi
echo ${STATS[@]} | sed -e s/' '/',"'/g -e s/':'/'":'/g -e s/^/'{"tcp_conn":{"'/g -e s/'WAIT_'/'WAIT'/g -e s/'$'/'}}'/g

給予執行權限

# chmod +x /var/lib/zabbix/json_item_tcp.sh

到 Server 端,進行以下測試 (紅字請修改為實際值)

# zabbix_get -s Client_IP -k "tcp_conn.json"

Zabbix 應用 – 設定 TCP 連線 ( Linux & Windows )-02

重新啟動 zabbix agnet 後,將 Host 套入 Template

如下圖所示;代表您的設定正確運作中

Zabbix 應用 – 設定 TCP 連線 ( Linux & Windows )-03

設定 ( Windows ):

首先下載 Template 後,匯入到 Zabbix Server 上

https://share.zabbix.com/index.php?option=com_mtree&task=att_download&link_id=796&cf_id=40

修改 zabbix-agent.conf

找到以下位置,修改為

UnsafeUserParameters=1
UserParameter=sockstat.sockets, netstat -ano | find /V "hola" /C
UserParameter=sockstat.tcp.inuse, netstat -ano | findstr ESTABLISHED
UserParameter=sockstat.tcp.inuse.count, netstat -ano | find /C "ESTABLISHED"
UserParameter=sockstat.tcp.orphan, netstat -ano | findstr CLOSE_WAIT
UserParameter=sockstat.tcp.orphan.count, netstat -ano | find /C "CLOSE_WAIT"
UserParameter=sockstat.tcp.timewait, netstat -ano | findstr TIME_WAIT
UserParameter=sockstat.tcp.timewait.count, netstat -ano | find /C "TIME_WAIT"
UserParameter=sockstat.tcp.allocated, netstat -ano | findstr LISTENING
UserParameter=sockstat.tcp.allocated.count, netstat -ano | find /C "LISTENING"
UserParameter=sockstat.udp.inuse, netstat -ano | findstr UDP
UserParameter=sockstat.udp.inuse.count, netstat -ano | find /C "UDP"

重新啟動 zabbix agnet 後,將 Host 套入 Template

如下圖所示;代表您的設定正確運作中

Zabbix 應用 – 設定 TCP 連線 ( Linux & Windows )-01

參考資料:

Linux :

https://github.com/tanrakukairo/zabbix_template_tcp_connections

Windows:

https://share.zabbix.com/operating-systems/windows/template-tct-udp-windows-connections

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s