tcp的連接狀態 語法
兩種都是一樣的結果 但ss的語法是系統核心第一手的訊息比較高效
#netstat -an |awk '/(^tcp)/{++state[$NF]}END{for(key in state)print key"\t"state[key]}'
#ss -ant | awk 'NR>1 {++s[$1]} END {for(k in s) print k,s[k]}'
1.建立zabbix 獲取tcp狀態的shell腳本
vim /etc/zabbix/script/tcp/tcp_status.sh
[ $# -ne 1 ] && echo "Usage:CLOSE-WAIT|CLOSED|CLOSING|ESTAB|FIN-WAIT-1|FIN-WAIT-2|LAST-ACK|LISTEN|SYN-RECV SYN-SENT|TIME-WAIT" && exit 1 ss_file=/etc/zabbix/script/tcp/ss.txt tcp_status_fun(){ [ $1 == "ESTABLISHED" ] && TCP_STAT="ESTAB" || TCP_STAT=$1 ss -ant | awk 'NR>1 {++s[$1]} END {for(k in s) print k,s[k]}' > $ss_file TCP_STAT_VALUE=$(grep ${TCP_STAT} $ss_file|awk {'print $NF'}) if [ -z "$TCP_STAT_VALUE" ];then TCP_STAT_VALUE=0 fi echo $TCP_STAT_VALUE } tcp_status_fun $1
touch /etc/zabbix/script/tcp/ss.txt
chmod +x /etc/zabbix/script/tcp/*
vim /etc/zabbix/zabbix_agentd.conf.d/tcp_status.conf #創建一個tcp_status的key
UserParameter=tcp_status[*],/etc/zabbix/scripts/tcp/tcp_status.sh $1
重啟zabbix_agent服務
/etc/init.d/zabbix-agent restart
2.在zabbix_proxy機上使用指令測試是否成功 #LISTEN就作為$1傳參到腳本裡面去了
[root@admin2 ~]# zabbix_get -s 10.140.0.10 -p10050 -k tcp_status[LISTEN]
12
3.到zabbix的web端上面操作
建立 TCP Connection Status模版
應用集建立TCP
建立11條項目
圖型建立TCP連接狀態 點進去後全選11個項目按加入即可
到host上加入剛建立好的模版
正確的話就會產生圖型
參考網站: