Zabbix監控TCP連線狀態

2021-08-19 19:40:32 字數 2160 閱讀 9983

獲取tcp連線數的兩種方法:

netstat -n | awk '/^tcp/  end '

ss -ant | awk 'nr>1 end '

netstat是遍歷/proc下面每個pid目錄,ss直接讀/proc/net下面的統計資訊。所以ss執行的時候消耗資源以及消耗的時間都比netstat少很多。

規範指令碼存放目錄:

mkdir /etc/zabbix/scripts
1.編寫監控tcp連線數的shell指令碼,並新增執行許可權

# cat /etc/zabbix/scripts/tcp_status.sh 

#!/bin/bash

#[ $#

-ne1 ] && echo

"usage:close-wait|closed|closing|estab|fin-wait-1|fin-wait-2|last-ack|listen|syn-recv syn-sent|time-wait" && exit

1tcp_status_fun

() end ' > /tmp/netstat.tmp

ss -ant | awk 'nr>1 end ' > /tmp/ss.tmp

tcp_stat_value=$(grep "$tcp_stat" /tmp/ss.tmp | cut -d

' '-f2)

if [ -z $tcp_stat_value ];then

tcp_stat_value=0

fiecho

$tcp_stat_value

}tcp_status_fun $1

新增執行許可權:

chmod +x tcp_status.sh

2.建立乙個自定義的key:

# cat /etc/zabbix/zabbix_agentd.d/tcp.conf 

userparameter=tcp_status[*],/bin/bash /etc/zabbix/scripts/tcp_status.sh "$1"

3.重啟zabbix-agent,修改配置檔案必須重啟

systemctl restart  zabbix-agent
4.服務端使用zabbix_get測試是否能正常獲取值

zabbix_get -s

127.0

.0.1

-k tcp_status[estab]

5.web介面,匯入tcp模板,建立主機並關聯tcp模板

listen:等待從任何遠端tcp 和埠的連線請求。

syn_sent:傳送完乙個連線請求後等待乙個匹配的連線請求。

syn_received:傳送連線請求並且接收到匹配的連線請求以後等待連線請求確認。

established:表示乙個開啟的連線,接收到的資料可以被投遞給使用者。連線的資料傳輸階段的正常狀態。

fin_wait_1:等待遠端tcp 的連線終止請求,或者等待之前傳送的連線終止請求的確認。

fin_wait_2:等待遠端tcp 的連線終止請求。

close_wait:等待本地使用者的連線終止請求。

closing:等待遠端tcp 的連線終止請求確認。

last_ack:等待先前傳送給遠端tcp 的連線終止請求的確認(包括它位元組的連線終止請求的確認)

time_wait:等待足夠的時間過去以確保遠端tcp 接收到它的連線終止請求的確認。

time_wait 兩個存在的理由:

1.可靠的實現tcp全雙工連線的終止;

2.允許老的重複分節在網路中消逝。

closed:不在連線狀態(這是為方便描述假想的狀態,實際不存在)

Zabbix 監控TCP連線的狀態

tcp的連線狀態對於我們web伺服器來說是至關重要的,尤其是併發量establish 或者是syn recv值,假如這個值比較大的話我們可以認為是不是受到了 或是是time wait值比較高的話,我們要考慮看我們核心是否需要調優,太高的time wait值的話會占用太多埠,要是埠少的話後果不堪設想 ...

zabbix對tcp狀態監控

1 先編寫乙個獲取tcp狀態的指令碼檔案,指令碼放在 usr lib zabbix alertscripts vim usr lib zabbix alertscripts tcp status.sh bin bash ne 1 echo usage close wait closed closin...

zabbix 監控Linux 主機TCP連線數

環境 linux 主機 步驟 1,在linux 主機上寫個指令碼執行查詢當前tcp 連線的引數輸出到相應值得文字中 2,建立個任務計畫,每分鐘執行一次 3,linux 主機上的 zabbix 客戶端配置檔案定義好自定義key 1,在 home zabbix sh 建立乙個tcpconnection ...