zabbix3.0 使用SS代替netstat無需腳本,1分鐘搞定TCP狀態監控




        這段時間一直忙,沒時間好好理下監控,趁着假期有時間,理了一下。
web

        對於zabbix監控TCP狀態,在網上查了不少資料,大多數都是使用netstat命令來實現。c#

        若是服務器的壓力小,連接少,不會有問題,但隨着服務器壓力和連接數的增長,用netstat就會形成執行速度慢,server端沒法接收到執行結果,形成監控異常。
bash

        平時一直用SS,因此試着用SS代替netstat,速度快了很多。
服務器

        我的較喜歡偷懶,看到網上不少少寫了很是長的腳本,又是函數,又是寫臨時文件的。其實徹底不必,不用寫啥腳本,臨時文件,很簡單的就搞定了。
tcp

        下面是具體實現方式:
ide

         一、在web端建立模板,具體版本以下面這些圖。
函數


wKiom1kFojXhMW7bAADI2vVZvgo317.jpg-wh_50wKioL1kFojXSF9odAAEsrpLVI_Q346.jpg-wh_50

         二、經過下面ss的源碼咱們能夠知道SS能識別的TCP狀態的關鍵字。server

static const char *sstate_name[] = {
        "UNKNOWN",
        [TCP_ESTABLISHED] = "ESTAB",
        [TCP_SYN_SENT] = "SYN-SENT",
        [TCP_SYN_RECV] = "SYN-RECV",
        [TCP_FIN_WAIT1] = "FIN-WAIT-1",
        [TCP_FIN_WAIT2] = "FIN-WAIT-2",
        [TCP_TIME_WAIT] = "TIME-WAIT",
        [TCP_CLOSE] = "UNCONN",
        [TCP_CLOSE_WAIT] = "CLOSE-WAIT",
        [TCP_LAST_ACK] = "LAST-ACK",
        [TCP_LISTEN] =  "LISTEN",
        [TCP_CLOSING] = "CLOSING",
};

           咱們用這些關鍵字替換上面Item中的KEY來實現全部狀態的獲取。
blog


        三、配置zabbix agent配置文件。
get

        

  cat tcp_status.sh 
  UserParameter=tcp.status[*], /usr/sbin/ss -ant|grep -c $1

         四、最後重啓zabbix agent後,關聯模板便可。


wKioL1kFojagcpy_AADT8sIb2js607.jpg-wh_50

        寫的比較簡單,你們本身嘗試先,有問題再聊。

相關文章
相關標籤/搜索