日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

詳解Linux使用ss命令結合zabbix對socket做監控

瀏覽:311日期:2024-09-24 17:45:09
目錄前言一、ss命令二、zabbix監控機器總體的socket情況2.1、寫腳本2.2、配置zabbix agent的配置文件2.3、配置zabbix的模板三、zabbix監控機器來源于各個機器的請求數3.1、寫腳本3.2、配置zabbix_agent.conf文件3.3、配置Discovery,配置item,trigger,graph前言

這里我們使用zabbix對其進行監控,使用的是ss命令,不使用netstat命令,因為ss的速度快很多,不信的話可以去測一下哈,一臺機器的socket越多,對比越明顯。而且ss命令能顯示更多的內容,其實我對這兩個命令不是特別的熟悉,通過man ss可以看到:

詳解Linux使用ss命令結合zabbix對socket做監控

一、ss命令

ss命令用于顯示socket狀態. 他可以顯示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain sockets等等統計. 它比其他工具展示等多tcp和state信息. 它是一個非常實用、快速、有效的跟蹤IP連接和sockets的新工具.SS命令可以提供如下信息:

所有的TCP sockets 所有的UDP sockets 所有ssh/ftp/ttp/https持久連接 所有連接到Xserver的本地進程 使用state(例如:connected, synchronized, SYN-RECV, SYN-SENT,TIME-WAIT)、地址、端口過濾 所有的state FIN-WAIT-1 tcpsocket連接以及更多

很多流行的Linux發行版都支持ss以及很多監控工具使用ss命令.熟悉這個工具有助于您更好的發現與解決系統性能問題.本人強烈建議使用ss命令替代netstat部分命令,例如netsat -ant/lnt等

直接ss命令

詳解Linux使用ss命令結合zabbix對socket做監控

對上面解釋一波:

Netid #socket類型,在上面的例子中,有 TCP、u_str(unix流)等套接字State #套接字處于什么狀態,下面是TCP套接字的所有狀態及說明, 實際上就是TCP的三次握手和四次揮手的所有狀態Recv-Q #在 ESTAB 狀態下,表示內核中還有多少字節的數據沒有被上層應用讀取,如果這里數值很大,應用程序可能發生了阻塞Send-Q #在 ESTAB 狀態下,表示內核發送隊列中還有多少字節的數據沒有收到確認的ACK,如果這個數值很大,表明接收端的接收以及處理需要加強Local Address:Port #本地地址和端口Peer Address:Port #遠程地址和端口

然后我們接著看上面的state有哪些呢,如果特別熟悉網絡的人應該很懂,至少我現在是不是特別熟悉,三次握手和四次揮手的狀態:

LISTEN #服務端偵聽套接字等待客戶端的連接SYN-SENT #客戶端已發送套接字連接請求報文,等待連接被服務器接收SYN-RECEIVED #服務器端接收連接請求報文后,等待客戶端的確認連接的回復報文ESTABLISHED #服務端和客戶端之間成功建立了一條有效的連接,可以互相傳輸數據FIN-WAIT-1 #服務器或客戶端調用close函數主動向對方發出終止連接的請求報文,同時等待對方確認終止連接的回復報文FIN-WAIT-2 #主動關閉連接端收到對方確認終止連接的回復報文,同時等待對方連接終止的請求報文,這時的狀態是TCP連接的半關閉狀態,可以接受數據,但是不能發送數據CLOSE-WAIT #被動關閉端收到主動關閉端終止連接的請求報文后,向主動關閉端發送確認終止連接的回復報文,同時被動關閉端等待本地用戶終止連接,這時被動關閉端的狀態是TCP連接的半關閉狀態,可以發送數據,但是不能接收數據CLOSING #服務器和客戶端同時向對方發送終止連接(調用close函數)請求報文,并且雙方都是在收到對方發送的終止連接回復報文之前收到了對方的發送的終止連接請求報文,這個時候雙方都進入了CLOSING狀態,進入CLOSING狀態之后,只要收到了對方對自己終止連接的回復報文,就會進入TIME-WAIT狀態,所以CLOSING狀態的持續時間會特別短,一般很難捕獲到LAST-ACK #被動關閉端發送完全部數據之后,向主動關閉端發送終止連接的請求報文,等待主動關閉端發送終止連接的回復報文TIME-WAIT #主動關閉端收到被動關閉端終止連接的請求報文后,給被動關閉端發送終止連接的回復報文,等待足夠時間以確保被動關閉端收到了主動關閉段發送的終止連接的回復報文CLOSED #完全沒有連接,套接字連接已經終止了

那么這些狀態ss命令又怎么對應呢?(后面的是ss命令顯示的狀態信息)

[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',

江到這里其實就可以去做下面的監控了,繼續往下看ss命令的使用。

Usage: ss [ OPTIONS ]

       ss [ OPTIONS ] [ FILTER ]

-h, --help 幫助信息-V, --version 程序版本信息-n, --numeric 不解析服務名稱-r, --resolve 解析主機名-a, --all 顯示所有套接字(sockets)-l, --listening 顯示監聽狀態的套接字(sockets)-o, --options 顯示計時器信息-e, --extended 顯示詳細的套接字(sockets)信息-m, --memory 顯示套接字(socket)的內存使用情況-p, --processes 顯示使用套接字(socket)的進程-i, --info 顯示 TCP內部信息-s, --summary 顯示套接字(socket)使用概況-4, --ipv4 僅顯示IPv4的套接字(sockets)-6, --ipv6 僅顯示IPv6的套接字(sockets)-0, --packet 顯示 PACKET 套接字(socket)-t, --tcp 僅顯示 TCP套接字(sockets)-u, --udp 僅顯示 UCP套接字(sockets)-d, --dccp 僅顯示 DCCP套接字(sockets)-w, --raw 僅顯示 RAW套接字(sockets)-x, --unix 僅顯示 Unix套接字(sockets)-f, --family=FAMILY 顯示 FAMILY類型的套接字(sockets),FAMILY可選,支持 unix, inet, inet6, link, netlink-A, --query=QUERY, --socket=QUERYQUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]-D, --diag=FILE 將原始TCP套接字(sockets)信息轉儲到文件-F, --filter=FILE 從文件中都去過濾器信息FILTER := [ state TCP-STATE ] [ EXPRESSION ]

重點在下面的監控

二、zabbix監控機器總體的socket情況

做這個監控前可以熟悉下awk命令

這是使用的監控系統為zabbix,我們這里會結合zabbix的模板(這里選擇模板是為了后期拓展),和自定義腳本的方式進行監控。

2.1、寫腳本

二話不多說上腳本先:

vim tcp_status.sh#################腳本內容##################!/bin/bashif [ $# -ne 1 ];then echo 'Follow the script name with an argument 'ficase $1 in LISTEN)result=`ss -ant | awk ’NR>1 {a[$1]++} END {for (b in a) print b,a[b]}’ | awk ’/LISTEN/{print $2}’`if [ '$result' == '' ];then echo 0else echo $resultfi;; ESTAB)result=`ss -ant | awk ’NR>1 {a[$1]++} END {for (b in a) print b,a[b]}’ | awk ’/ESTAB/{print $2}’`if [ '$result' == '' ];then echo 0else echo $resultfi;; CLOSE-WAIT)result=`ss -ant | awk ’NR>1 {a[$1]++} END {for (b in a) print b,a[b]}’ | awk ’/CLOSE-WAIT/{print $2}’`if [ '$result' == '' ];then echo 0else echo $resultfi;; TIME-WAIT)result=`ss -ant | awk ’NR>1 {a[$1]++} END {for (b in a) print b,a[b]}’ | awk ’/TIME-WAIT/{print $2}’`if [ '$result' == '' ];then echo 0else echo $resultfi;; SYN-SENT)result=`ss -ant | awk ’NR>1 {a[$1]++} END {for (b in a) print b,a[b]}’ | awk ’/SYN-SENT/{print $2}’`if [ '$result' == '' ];then echo 0else echo $resultfi;; SYN-RECV)result=`ss -ant | awk ’NR>1 {a[$1]++} END {for (b in a) print b,a[b]}’ | awk ’/SYN-RECV/{print $2}’`if [ '$result' == '' ];then echo 0else echo $resultfi;; FIN-WAIT-1)result=`ss -ant | awk ’NR>1 {a[$1]++} END {for (b in a) print b,a[b]}’ | awk ’/FIN-WAIT-1/{print $2}’`if [ '$result' == '' ];then echo 0else echo $resultfi;; FIN-WAIT-2)result=`ss -ant | awk ’NR>1 {a[$1]++} END {for (b in a) print b,a[b]}’ | awk ’/FIN-WAIT-2/{print $2}’`if [ '$result' == '' ];then echo 0else echo $resultfi;; UNCONN)result=`ss -ant | awk ’NR>1 {a[$1]++} END {for (b in a) print b,a[b]}’ | awk ’/UNCONN/{print $2}’`if [ '$result' == '' ];then echo 0else echo $resultfi;; LAST-ACK)result=`ss -ant | awk ’NR>1 {a[$1]++} END {for (b in a) print b,a[b]}’ | awk ’/LAST-ACK/{print $2}’`if [ '$result' == '' ];then echo 0else echo $resultfi;; CLOSING)result=`ss -ant | awk ’NR>1 {a[$1]++} END {for (b in a) print b,a[b]}’ | awk ’/CLOSING/{print $2}’`if [ '$result' == '' ];then echo 0else echo $resultfi;; esac2.2、配置zabbix agent的配置文件

vim zabbix_agent.conf##############添加如下內容#################UnsafeUserParameters=1 #這個參數是自定義腳本需要配置的UserParameter=tcp.status[*],sh /home/zabbix/tcp_status.sh $1 #這里就是用來指定剛剛寫的腳本,后面傳一個參數

配置好了以后記得重啟zabbix agent

2.3、配置zabbix的模板

往其中添加item,trigger,graph

新增模板,然后往其中添加item,如下圖所示

詳解Linux使用ss命令結合zabbix對socket做監控

上圖中key中的tcp.status指的是剛剛在第二步中的配置UserParameter=tcp.status[*],sh /home/zabbix/tcp_status.sh $1

然后中括號里面的內容就是$1進行傳參的參數,具體的參數就是[UNCONN]里面的UNCONN,這些值對應第一步監控腳本中的case中的每一種情況,到這里基本上完成了,不,還是畫個圖吧,在模板中添加graph,如下圖所示:

詳解Linux使用ss命令結合zabbix對socket做監控

還有最重要的一步就是把配置好監控腳本的(第一步)的主機添加到該模板,到此為止這個監控就做完了,看個結果圖吧

詳解Linux使用ss命令結合zabbix對socket做監控

三、zabbix監控機器來源于各個機器的請求數

這個監控的目的就是看看到底是哪些機器訪問目標機器比較頻繁。

這個監控采用自發現的監控,比上面那個會難一點哈,為啥要選擇自發現的監控呢,因為item不是確定的,這里選擇:原地址ip和目的ip地址作為item,我們在目的ip地址進行監控,這個是不變的,所以原地址ip值會發生變化,所以這里采用的是自動生成item的方式進行監控,自動添加和刪除item,其實挺好用的,只要學會了,超級簡單

這里也是分為三步,寫腳本,配置zabbix_agent.conf文件,配置Discovery

3.1、寫腳本

這里需要兩個腳本,一個用來做自發現(需要輸出json格式),一個用來做item的)

vim tcp_monitory.sh##################tcp_monitor.sh###################!/bin/bash#獲取數據輸出到data.txt文件中,格式為:原地址ip:count:目標地址ip#并且過濾掉count小于200的數據,這里沒有分socket的狀態,眉毛胡子一把抓了,個人可以根據具體的需求改進ip_addr=`ip addr | grep -w inet | grep -v '127.0.0.1' | awk ’{print $2}’| awk -F '/' ’{print $1}’`ss -ant | awk ’{ print $5}’|grep -Ev ’127.0.0.1’ | cut -d ’:’ -f4 | awk -v ip_addr=$ip_addr ’NR>1 {++s[$1]} END {for(k in s)if(s[k]>=200){print k,s[k],ip_addr}}’ | grep -E '^([0-9]{1,3}.){3}[0-9]' > /home/zabbix/data.txt#執行Python腳本,這是為了輸出json格式,python /home/zabbix/get_json.py######################################如下是get_json.py的內容##############get_json.py#################!/usr/bin/env python#coding=utf-8import jsondef create_json(path): json_list = [] with open(path) as f:for line in f.readlines(): dict = {} split = line.split(' ') dict['{#DES_IP}'] = split[0] //dict['{#LINK_COUNT}'] = split[1] //這個是可以不要的 dict['{#SOU_IP}'] = split[2][:-1] json_list.append(dict) sum = {} sum['data'] = json_list sum = json.dumps(sum) print sumif __name__ == ’__main__’: path = '/home/zabbix/data.txt' create_json(path)##############分割線:上面的是自發現的腳本#############################分割線:下面的是item相關腳本###############vim tcp_item.sh##################tcp_item.sh#####################!/bin/bashexport LANG='en_US.UTF-8'path=/home/zabbix/data.txtcount=`cat $path | grep $1 | grep $2 | awk ’{print $2}’`[ 1'$count' -eq 1 ] && echo 0 || echo $count

兩個腳本都搞定了,就可以進行zabbix_agent.conf的配置了

3.2、配置zabbix_agent.conf文件

在配置文件中新增如下內容:

UnsafeUserParameters=1 #如果已經配置就不需要配置了UserParameter=discovery.tcp_monitor[*],sh /home/zabbix/tcp_monitor.sh #自發現UserParameter=alert.tcp_count[*],sh /home/zabbix/tcp_item.sh $1 $2 #item,其中$1,$2為item中的傳遞參數,用來區別item的不同3.3、配置Discovery,配置item,trigger,graph

這里還是選擇在zabbix的模板上進行配置,現在新增一個Discovery

詳解Linux使用ss命令結合zabbix對socket做監控

然后在Discovery上配置item,trigger,graph

詳解Linux使用ss命令結合zabbix對socket做監控

配置item:

詳解Linux使用ss命令結合zabbix對socket做監控

上面的DES_IP,SOU_IP來源于自發現腳本中的Python腳本,用于輸出的格式。alter.tcp_count是UserParameter=alert.tcp_count[*],sh /home/zabbix/tcp_item.sh $1 $2,后面的$1,$2與DES_IP,SOU_IP相對應生成唯一確定的item。

item配置完畢后就可以配置trigger了:

詳解Linux使用ss命令結合zabbix對socket做監控

接下來繼續配置graph了

詳解Linux使用ss命令結合zabbix對socket做監控

最后把模板添加到機器,然后看結果

詳解Linux使用ss命令結合zabbix對socket做監控

以上就是詳解Linux使用ss命令結合zabbix對socket做監控的詳細內容,更多關于Linux ss命令 zabbix socket監控的資料請關注好吧啦網其它相關文章!

標簽: Linux系統
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩精品一级中文字幕精品视频免费观看 | 国产精品毛片一区二区在线看| 无码日韩精品一区二区免费| 最近国产精品视频| 88久久精品| 久久99免费视频| 精品日韩一区| 麻豆免费精品视频| 日韩在线免费| 日韩欧美一区二区三区免费观看| 成人午夜网址| 免费在线成人| 亚洲午夜黄色| 亚洲一区国产| 亚洲精品麻豆| 久久国内精品视频| 国产日韩亚洲| 国产精品一区二区中文字幕| 国产精品啊v在线| 精品国产aⅴ| 都市激情国产精品| 群体交乱之放荡娇妻一区二区| 国产精品调教视频| 福利一区二区三区视频在线观看| 国产一区二区三区不卡av| 久久不射网站| 亚洲三区欧美一区国产二区| 精精国产xxxx视频在线野外| 在线精品一区| 国产精品久久久久久久久久久久久久久| 久久影院资源站| 黄色在线网站噜噜噜| 91偷拍一区二区三区精品| 国产一区日韩欧美| 日本不卡一区二区三区| 日韩精品三级| 日韩精品第一区| 日韩久久精品网| 亚洲aa在线| 亚洲风情在线资源| 在线看片日韩| 婷婷成人综合| 久久精品理论片| 在线综合亚洲| 亚洲国产欧美日本视频| 999精品在线| 免费视频一区二区| 日韩1区2区日韩1区2区| 精品视频黄色| 亚洲精品在线观看91| 日韩黄色av| 国产福利一区二区三区在线播放| 日韩精品久久久久久| 日韩av成人高清| 樱桃视频成人在线观看| 亚洲精品激情| 丁香婷婷久久| 日韩av在线免费观看不卡| 亚洲v在线看| 美女视频一区在线观看| 亚洲精品综合| 91精品福利| 日韩一区二区三区免费播放| 欧美精品影院| 日本一不卡视频| 亚洲精品一区二区在线看| 91亚洲国产高清| 中文日韩在线| 日韩欧美自拍| 久久久国产精品网站| 天堂va欧美ⅴa亚洲va一国产| 久久久久久亚洲精品美女| 亚洲久久视频| av不卡在线看| 日韩精品亚洲一区二区三区免费| 亚洲一区二区三区高清| 麻豆视频在线看| 国产精品一页| 日韩精品乱码av一区二区| 喷白浆一区二区| 亚洲欧洲av| 综合精品一区| 亚洲日韩中文字幕一区| 欧美好骚综合网| 日本在线高清| 成人片免费看| 欧美日韩尤物久久| 亚洲va中文在线播放免费| 日韩av成人高清| 日韩精品一级二级| 亚洲黄色在线| 综合日韩在线| 视频一区中文| 国产成人精选| 岛国av在线播放| 国产成人精品亚洲线观看| 精品久久91| 国产激情在线播放| 日韩综合一区二区| 亚洲另类黄色| 日韩高清电影一区| 捆绑调教美女网站视频一区 | 青青久久av| 日韩国产一区| 国产精品老牛| 国产亚洲激情| 久久成人精品| 日本aⅴ精品一区二区三区| 精品久久久中文字幕| 国产一区一一区高清不卡| 亚洲天堂一区二区| se01亚洲视频| 丝袜美腿诱惑一区二区三区| 亚洲美女久久精品| 久久三级福利| 国产专区一区| 欧美啪啪一区| 国产精品日韩精品中文字幕| 亚洲欧洲美洲av| 婷婷成人综合| 国产精品丝袜在线播放| 麻豆精品网站| 国产成人精品999在线观看| 欧美jjzz| 免费看av不卡| 精品91久久久久| 久久影院资源站| 日韩一级精品| 久久久久久久久久久妇女| 国产精品一区二区av日韩在线 | 麻豆精品蜜桃视频网站| 国产精品腿扒开做爽爽爽挤奶网站| 国产精品毛片aⅴ一区二区三区| 成人看片网站| 久久精品国产亚洲aⅴ| 日韩中文字幕一区二区高清99| 在线日韩一区| 精精国产xxxx视频在线播放 | 亚洲天堂免费电影| 久久精品99久久久| 视频一区二区国产| 亚洲香蕉网站| 欧美日韩亚洲在线观看| 麻豆91小视频| 91成人福利| 日韩欧美另类中文字幕| 久久久久久久久丰满| 久久xxx视频| 久久国产视频网| 日本va欧美va瓶| 午夜久久影院| 91亚洲国产高清| 国产一区二区三区四区| 国产精品一级在线观看| 野花国产精品入口| 99re国产精品| 妖精视频成人观看www| 精品日产乱码久久久久久仙踪林| 欧美激情日韩| 日韩在线精品| 国产偷自视频区视频一区二区| 欧美日韩高清| 久久久久久久久丰满| 久久久蜜桃一区二区人| 精品一级视频| 日韩精品影视| 鲁大师精品99久久久| 国产中文在线播放| 久久激情婷婷| 性欧美xxxx免费岛国不卡电影| 亚洲高清成人| 视频在线在亚洲| 日韩精选在线| 国产高清亚洲| 福利精品一区| 欧美日中文字幕| 美日韩一区二区三区| 中文另类视频| 亚洲另类视频| 天堂中文av在线资源库 | 国产欧美一区二区三区精品观看| 亚洲欧洲专区| 精品三级久久| 日韩不卡一区二区三区| 91日韩在线| 日韩高清电影免费| 91看片一区| 国产精品久久久久久久久免费高清 | 综合视频一区| 欧美黄页在线免费观看 | 激情久久99| 四虎精品一区二区免费| 亚洲日本网址| 天堂va欧美ⅴa亚洲va一国产| 亚洲午夜天堂| 免费久久99精品国产自在现线| 美女视频免费精品| 99精品在线观看| 免费日韩一区二区三区| 午夜免费一区|