色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

DBA抓包神器tshark測評

OSC開源社區 ? 來源:OSC開源社區 ? 2023-06-16 15:54 ? 次閱讀

作者:趙黎明

愛可生 MySQL DBA 團隊成員,熟悉 Oracle、MySQL 等數據庫,擅長數據庫性能問題診斷、事務與鎖問題的分析等,負責處理客戶 MySQL 及我司自研 DMP 平臺日常運維中的問題,對開源數據庫相關技術非常感興趣。

1常用抓包工具

tshark、tcpdump 和 Wireshark 都是網絡抓包工具,它們可以在網絡上捕獲和分析數據包。

tcpdump

一個開源的,基于命令行的網絡抓包工具。它可以捕獲和分析網絡數據包,運行在幾乎所有的 Unix 和 Linux 系統上;可以抓取實時網絡通信中的數據包,然后通過過濾器及其他參數,對數據包進行解析和處理。

tshark

Wireshark 的命令行版本,也是一個開源的網絡分析工具。它可以在命令行下捕獲和分析網絡流量數據,并使用 Wireshark 的過濾器來提取所需的數據,還支持與各種腳本語言(如 Python 和 Perl)結合使用,以自動化分析過程。

Wireshark

是一個流行的網絡協議分析器,支持從在線網絡或本地文件中捕獲數據包,并提供了圖形化用戶界面來展示數據包內容;可以解析并顯示各種網絡協議,并提供了強大的分析工具以及過濾器;與 tshark 和 tcpdump 相比,Wireshark 的優勢在于它提供了友好的 GUI 界面,使用戶更輕松地進行網絡協議的分析和調試。

小結

以上這些工具都可以直接捕獲和分析網絡數據包,但它們在使用方式和功能上略有不同;通常,我們會先用 tcpdump 或 tshark 在目標服務器上抓包生成 pcap 文件,再將其拿到裝有 Wireshark 的主機上進行分析,本文將會分享 tshark 和 Wireshark 的一些使用技巧。

2三次握手和四次揮手

TCP 協議中的三次握手和四次揮手是 TCP 連接建立和關閉的過程。

三次握手

客戶端向服務器發送 SYN 報文(請求建立連接)

服務器收到 SYN 報文后,回復 SYN+ACK 報文(同意建立連接)

客戶端收到 SYN+ACK 報文后,再回復 ACK 報文(確認連接建立)

77fe5900-0c16-11ee-962d-dac502259ad0.png

四次揮手

客戶端向服務器發送 FIN 報文(請求斷開連接)

服務器收到 FIN 報文后,回復 ACK 報文(確認收到請求)

當服務器確認數據已經全部發送完畢后,它會向客戶端發送 FIN 報文(關閉連接)

客戶端收到 FIN 報文后,回復 ACK 報文(表示確認收到關閉請求),至此,整個 TCP 連接就被徹底關閉了

781f498a-0c16-11ee-962d-dac502259ad0.png

三次握手用于建立連接,是雙方協商建立 TCP 連接的過程;四次揮手用于斷開連接,是雙方結束 TCP 連接的過程;不過,有時候四次揮手也會變成三次(如果沒有數據發送,2 個包會合并傳輸)。

784ff54e-0c16-11ee-962d-dac502259ad0.png

3三次握手和四次揮手的過程

我們可以通過 tshark 抓包來觀察 TCP 連接、斷開的具體過程。

--在服務端執行tshark命令進行抓包
dmp2(master)~#tshark-f'tcpport3332andhost10.186.61.83'
Runningasuser"root"andgroup"root".Thiscouldbedangerous.
Capturingon'eth0'
==>等待捕獲TCP包直到有內容輸出

#此處省略了-i,默認會選擇第一個非loopback的網絡接口(可簡寫為lo),效果與指定-ieth0相同
#-f,指定捕獲過濾器的表達式,可指定需要捕獲的內容,如:協議、端口、主機IP等

--通過MySQL客戶端遠程連接到MySQL實例,等待片刻后再退出
{master}~#m3332-s(此處配置了alias,可省略具體的連接串)
mysql:[Warning]Usingapasswordonthecommandlineinterfacecanbeinsecure.
mysql>exit

--觀察屏幕輸出

1、三次握手
從左到右的字段依次代表序號、時間戳(納秒)、源端IP、目標端IP、協議、包的長度(字節)、具體信息(包括源/目標端口號或設備名、標志位等內容)
10.00000000010.186.61.83->10.186.60.68TCP7438858>mcs-mailsvr[SYN]Seq=0Win=29200Len=0MSS=1460SACK_PERM=1TSval=2369606050TSecr=0WS=128
20.00001836810.186.60.68->10.186.61.83TCP74mcs-mailsvr>38858[SYN,ACK]Seq=0Ack=1Win=28960Len=0MSS=1460SACK_PERM=1TSval=2369617045TSecr=2369606050WS=128
30.00023316110.186.61.83->10.186.60.68TCP6638858>mcs-mailsvr[ACK]Seq=1Ack=1Win=29312Len=0TSval=2369606050TSecr=2369617045
40.00059242010.186.60.68->10.186.61.83TCP148mcs-mailsvr>38858[PSH,ACK]Seq=1Ack=1Win=29056Len=82TSval=2369617045TSecr=2369606050
50.00082792010.186.61.83->10.186.60.68TCP6638858>mcs-mailsvr[ACK]Seq=1Ack=83Win=29312Len=0TSval=2369606051TSecr=2369617045
60.00083351210.186.61.83->10.186.60.68TCP10238858>mcs-mailsvr[PSH,ACK]Seq=1Ack=83Win=29312Len=36TSval=2369606051TSecr=2369617045
70.00083726310.186.60.68->10.186.61.83TCP66mcs-mailsvr>38858[ACK]Seq=83Ack=37Win=29056Len=0TSval=2369617045TSecr=2369606051
80.00199799810.186.61.83->10.186.60.68TCP26438858>mcs-mailsvr[PSH,ACK]Seq=37Ack=83Win=29312Len=198TSval=2369606052TSecr=2369617045
90.00202191610.186.60.68->10.186.61.83TCP66mcs-mailsvr>38858[ACK]Seq=83Ack=235Win=30080Len=0TSval=2369617047TSecr=2369606052
100.00697722310.186.60.68->10.186.61.83TCP2088mcs-mailsvr>38858[PSH,ACK]Seq=83Ack=235Win=30080Len=2022TSval=2369617052TSecr=2369606052
110.00722734010.186.61.83->10.186.60.68TCP6638858>mcs-mailsvr[ACK]Seq=235Ack=2105Win=33280Len=0TSval=2369606057TSecr=2369617052
120.00842644710.186.61.83->10.186.60.68TCP17138858>mcs-mailsvr[PSH,ACK]Seq=235Ack=2105Win=33280Len=105TSval=2369606058TSecr=2369617052
130.00881232410.186.60.68->10.186.61.83TCP308mcs-mailsvr>38858[PSH,ACK]Seq=2105Ack=340Win=30080Len=242TSval=2369617053TSecr=2369606058
140.00909971210.186.61.83->10.186.60.68TCP29138858>mcs-mailsvr[PSH,ACK]Seq=340Ack=2347Win=36224Len=225TSval=2369606059TSecr=2369617053
150.00918964410.186.60.68->10.186.61.83TCP106mcs-mailsvr>38858[PSH,ACK]Seq=2347Ack=565Win=31104Len=40TSval=2369617054TSecr=2369606059
160.00944393610.186.61.83->10.186.60.68TCP13238858>mcs-mailsvr[PSH,ACK]Seq=565Ack=2387Win=36224Len=66TSval=2369606059TSecr=2369617054
170.00965640510.186.60.68->10.186.61.83TCP187mcs-mailsvr>38858[PSH,ACK]Seq=2387Ack=631Win=31104Len=121TSval=2369617054TSecr=2369606059
180.04964153210.186.61.83->10.186.60.68TCP6638858>mcs-mailsvr[ACK]Seq=631Ack=2508Win=36224Len=0TSval=2369606100TSecr=2369617054

#序號1-3的包,即TCP三次握手的過程
#1)110.186.61.83->10.186.60.68TCP7438858>mcs-mailsvr[SYN]Seq=0
#2)210.186.60.68->10.186.61.83TCP74mcs-mailsvr>38858[SYN,ACK]Seq=0Ack=1
#3)310.186.61.83->10.186.60.68TCP6638858>mcs-mailsvr[ACK]Seq=1Ack=1

2、四次揮手(在客戶端執行exit命令后才會輸出)
1986.74417350110.186.61.83->10.186.60.68TCP10038858>mcs-mailsvr[PSH,ACK]Seq=631Ack=2508Win=36224Len=34TSval=2369692794TSecr=2369617054
2086.74419455110.186.61.83->10.186.60.68TCP6638858>mcs-mailsvr[FIN,ACK]Seq=665Ack=2508Win=36224Len=0TSval=2369692794TSecr=2369617054
2186.74438941710.186.60.68->10.186.61.83TCP66mcs-mailsvr>38858[FIN,ACK]Seq=2508Ack=666Win=31104Len=0TSval=2369703789TSecr=2369692794
2286.74463220310.186.61.83->10.186.60.68TCP6638858>mcs-mailsvr[ACK]Seq=666Ack=2509Win=36224Len=0TSval=2369692795TSecr=2369703789

#序號20-22的包,為四次揮手的過程,這里由于服務器并沒有數據要傳輸給客戶端,所以將FIN和ACK合并在一個TCP包中了,即所謂的四次揮手變成了三次
#1)201986.74417350110.186.61.83->10.186.60.68TCP10038858>mcs-mailsvr[PSH,ACK]Seq=631Ack=2508
#2)2110.186.60.68->10.186.61.83TCP66mcs-mailsvr>38858[FIN,ACK]Seq=2508Ack=666
#3)2210.186.61.83->10.186.60.68TCP6638858>mcs-mailsvr[ACK]Seq=666Ack=2509

4TCP 包標志位的說明

TCP (傳輸控制協議)包頭部有 6 個標志位(Flag),分別為 URG、ACK、PSH、RST、SYN、FIN,它們的十六進制值分別為:0x20、0x10、0x08、0x04、0x02、0x01,其中每個標志位的意義如下:

URG 標志:緊急指針是否有效

ACK 標志:確認號是否有效

PSH 標志:Push操作,盡可能快地將數據交給應用層

RST 標志:重置連接

SYN 標志:發起一個新的連接

FIN 標志:釋放連接

5tshark 常見用法示例

1. tshark 以自定義字段來展示信息

--服務端執行抓包
dmp2(master)~#tshark-ieth0-dtcp.port==3332,mysql-f"host10.186.61.83andtcpport3332"-Tfields-eframe.time-eip.host-etcp.flags
Runningasuser"root"andgroup"root".Thiscouldbedangerous.
Capturingon'eth0'

#-Tfields,可以指定需要輸出的字段,需配合-e一起使用,此處將分別打印獲取包的時間、主機IP及TCP的標志位,這些字段會按照-e的順序進行排列展示
#-e,支持多種協議下的字段展示,具體用法查詢路徑:Wireshark ->分析->顯示過濾器表達式

--通過 MySQL 客戶端連接實例,執行一個查詢,再退出(共有 3 部分:連接、通信、斷連)
{master}~#m3332-s
mysql:[Warning]Usingapasswordonthecommandlineinterfacecanbeinsecure.
mysql>select@@version;
@@version
5.7.36-log
mysql>exit

--觀察屏幕輸出
1、三次握手
"Jun6,20231442.839863403CST"10.186.61.83,10.186.60.680x00000002
"Jun6,20231442.839904347CST"10.186.60.68,10.186.61.830x00000012
"Jun6,20231442.840263352CST"10.186.61.83,10.186.60.680x00000010
"Jun6,20231442.840666158CST"10.186.60.68,10.186.61.830x00000018
"Jun6,20231442.841604106CST"10.186.61.83,10.186.60.680x00000010
"Jun6,20231442.841612112CST"10.186.61.83,10.186.60.680x00000018
"Jun6,20231442.841616568CST"10.186.60.68,10.186.61.830x00000010
"Jun6,20231442.842524996CST"10.186.61.83,10.186.60.680x00000018
"Jun6,20231442.842550796CST"10.186.60.68,10.186.61.830x00000010
"Jun6,20231442.848566815CST"10.186.60.68,10.186.61.830x00000018
"Jun6,20231442.848826004CST"10.186.61.83,10.186.60.680x00000010
"Jun6,20231442.850258537CST"10.186.61.83,10.186.60.680x00000018
"Jun6,20231442.850881377CST"10.186.60.68,10.186.61.830x00000018
"Jun6,20231442.851278991CST"10.186.61.83,10.186.60.680x00000018
"Jun6,20231442.851395808CST"10.186.60.68,10.186.61.830x00000018
"Jun6,20231442.851667278CST"10.186.61.83,10.186.60.680x00000018
"Jun6,20231442.851926804CST"10.186.60.68,10.186.61.830x00000018
"Jun6,20231442.892409030CST"10.186.61.83,10.186.60.680x00000010

#前三個包分別為:0x02 [SYN]、0x12 [SYN, ACK]、0x10[ACK],即三次握手的過程
#后面的幾個包:0x18 [PSH, ACK]、0x10[ACK],是數據傳輸的過程

2、執行一個查詢
"Jun6,20231419.967273148CST"10.186.61.83,10.186.60.680x00000018
"Jun6,20231419.967553321CST"10.186.60.68,10.186.61.830x00000018
"Jun6,20231419.967835719CST"10.186.61.83,10.186.60.680x00000010

#當TCP連接完成后,在數據傳輸過程中獲取的包,其標志位為0x18[PSH,ACK]或0x10[ACK]

3、四次揮手
"Jun6,20231406.157240404CST"10.186.61.83,10.186.60.680x00000018
"Jun6,20231406.157833986CST"10.186.61.83,10.186.60.680x00000011
"Jun6,20231406.166359966CST"10.186.61.83,10.186.60.680x00000011
"Jun6,20231406.166378115CST"10.186.60.68,10.186.61.830x00000010
"Jun6,20231406.166971169CST"10.186.60.68,10.186.61.830x00000011
"Jun6,20231406.167317550CST"10.186.61.83,10.186.60.680x00000010

#看最后4個包,0x11[FIN,ACK]、0x10[ACK]、0x11[FIN,ACK]、0x10[ACK],這是標準的四次揮手過程

2. tshark 抓取 MySQL 中執行的 SQL

--在服務器上執行抓包
dmp2(master)~#tshark-f'tcpport3332'-Y"mysql.query"-dtcp.port==3332,mysql-Tfields-eframe.time-eip.src-eip.dst-emysql.query
Runningasuser"root"andgroup"root".Thiscouldbedangerous.
Capturingon'eth0'

#-Y,指定顯示過濾器表達式,在單次分析中可以代替-R選項,此處表示僅顯示mysql.query相關的包
#-d,用于指定該抓包會話的協議詳細解析器模塊,可以執行tshark-dhelp來查看可用的協議(執行雖然會報錯,但會顯示所有支持的協議),此處表示將3332端口上的TCP包以MySQL協議進行解析
#-Tfields-emysql.query,即可獲取符合MySQL協議的SQL語句
#-eip.src-eip.dst的寫法,也可以用-eip.host來替換

--先停止從庫復制后再啟動
zlm@10.186.60.74[(none)]>stopslave;
QueryOK,0rowsaffected(0.06sec)

zlm@10.186.60.74[(none)]>startslave;
QueryOK,0rowsaffected(0.05sec)

--觀察屏幕輸出
"Jun6,20231638.831359581CST"10.186.60.7410.186.60.68SELECTUNIX_TIMESTAMP()
"Jun6,20231638.832278722CST"10.186.60.7410.186.60.68SELECT@@GLOBAL.SERVER_ID
"Jun6,20231638.832613595CST"10.186.60.7410.186.60.68SET@master_heartbeat_period=1000000000
"Jun6,20231638.832861743CST"10.186.60.7410.186.60.68SET@master_binlog_checksum=@@global.binlog_checksum
"Jun6,20231638.833078690CST"10.186.60.7410.186.60.68SELECT@master_binlog_checksum
"Jun6,20231638.833278049CST"10.186.60.7410.186.60.68SELECT@@GLOBAL.GTID_MODE
"Jun6,20231638.833489342CST"10.186.60.7410.186.60.68SELECT@@GLOBAL.SERVER_UUID
"Jun6,20231638.833769721CST"10.186.60.7410.186.60.68SET@slave_uuid='90161133-88b1-11ed-bbcc-02000aba3c4a'

#通過指定MySQL協議解析模塊,此處捕獲到了MySQL從實例在啟動復制時會執行的SQL語句
#如已用-d 選項指定了協議、端口等信息時,可省略-f(抓包過濾器表達式),除非還有其他的過濾需求,但不建議省略-Y(顯示過濾器表達式),否則會輸出非常多的信息,以下兩種寫法是等效的:
tshark-f'tcpport3332'-Y"mysql.query"-dtcp.port==3332,mysql-Tfields-eframe.time-eip.host-emysql.query
tshark-Y"mysql.query"-dtcp.port==3332,mysql-Tfields-eframe.time-eip.host-emysql.query

--獲取類型為Query的SQL
dmp2(master)~#tshark-ilo-dtcp.port==3332,mysql-Y"mysql.command==3"-Tfields-eip.host-emysql.query-eframe.time-c10
Runningasuser"root"andgroup"root".Thiscouldbedangerous.
Capturingon'Loopback'
127.0.0.1,127.0.0.1STARTTRANSACTION"Jun7,20231729.194080437CST"
127.0.0.1,127.0.0.1insertignoreintouniverse.u_delay(source,real_timestamp,logic_timestamp)values('ustats',now(),0)"Jun7,20231729.194306733CST"
127.0.0.1,127.0.0.1updateuniverse.u_delaysetreal_timestamp=now(),logic_timestamp=logic_timestamp+1wheresource='ustats'"Jun7,20231729.194647464CST"
127.0.0.1,127.0.0.1COMMIT"Jun7,20231729.194953692CST"
4packetscaptured

#mysql.command=3,表示執行的SQL類型為Query,共支持30多種預設值
#對于熟悉DMP的小伙伴,一看便知這是由平臺納管的一個實例,當前正在做時間戳的寫入(判斷主從延時的依據)

--獲取與show相關的SQL
dmp2(master)~#tshark-ilo-dtcp.port==3332,mysql-Y'mysql.querycontains"show"'-Tfields-eip.host-emysql.query-eframe.time-c10
Runningasuser"root"andgroup"root".Thiscouldbedangerous.
Capturingon'Loopback'
127.0.0.1,127.0.0.1showslavestatus"Jun7,20231744.672060318CST"
127.0.0.1,127.0.0.1showglobalstatus"Jun7,20231744.672808866CST"
127.0.0.1,127.0.0.1showglobalvariables"Jun7,20231744.672845236CST"
127.0.0.1,127.0.0.1showglobalvariableswhereVariable_name='innodb_flush_log_at_trx_commit'orVariable_name='sync_binlog'"Jun7,20231744.673036197CST"
4packetscaptured

dmp2(master)~#tshark-ilo-dtcp.port==3332,mysql-Y'mysql.querymatches"^show"'-Tfields-eip.host-emysql.query-eframe.time-c10
Runningasuser"root"andgroup"root".Thiscouldbedangerous.
Capturingon'Loopback'
127.0.0.1,127.0.0.1showglobalstatus"Jun7,20231702.671895630CST"
127.0.0.1,127.0.0.1showslavestatus"Jun7,20231702.671944388CST"
127.0.0.1,127.0.0.1showglobalvariables"Jun7,20231702.671998965CST"
127.0.0.1,127.0.0.1showmasterstatus"Jun7,20231702.672673795CST"
4packetscaptured

#contains使用字符串進行匹配,只要在數據包中存在指定的字符串,就會匹配成功,不論該字符串出現在查詢的任何位置
#matches 支持使用正則表達式進行匹配,匹配符合指定規則的數據包,如:^show
#用contains/maches進行匹配查找時,關鍵詞需用雙引號包圍,此時外層建議使用單引號,因為maches進行正則匹配時,外層使用雙引號會報錯,contains則不限制
#以上匹配方式類似模糊查詢,但會區分大小寫,如果指定Show或SHOW為關鍵詞,可能獲取不到SQL

3. tshark 抓取 OB 中執行 SQL

與之前的方法類似,只需調整 IP 地址和端口號即可。

--抓取5個mysql.query協議的包
[root@10-186-65-73~]#tshark-ilo-Y"mysql.query"-dtcp.port==2881,mysql-Tfields-eframe.time-eip.host-emysql.query-c5
Runningasuser"root"andgroup"root".Thiscouldbedangerous.
Capturingon'Loopback'
"Jun7,20231512.886615893CST"127.0.0.1,127.0.0.1select/*+MONITOR_AGENTREAD_CONSISTENCY(WEAK)*/__all_tenant.tenant_id,tenant_name,mem_used,access_count,hit_countfromv$plan_cache_statjoin__all_tenantonv$plan_cache_stat.tenant_id=__all_tenant.tenant_id
"Jun7,20231512.889500546CST"127.0.0.1,127.0.0.1select/*+MONITOR_AGENTREAD_CONSISTENCY(WEAK)*/tenant_name,tenant_id,casewhenevent_id=10000then'INTERNAL'whenevent_id=13000then'SYNC_RPC'whenevent_id=14003then'ROW_LOCK_WAIT'when(event_id>=10001andevent_id<=?11006)?or?(event_id?>=11008andevent_id<=?11011)?then?'IO'?when?event?like?'latch:%'?then?'LATCH'?else?'OTHER'?END?event_group,?sum(total_waits)?as?total_waits,?sum(time_waited_micro?/?1000000)?as?time_waited?from?v$system_event?join?__all_tenant?on?v$system_event.con_id?=?__all_tenant.tenant_id?where?v$system_event.wait_class?<>'IDLE'and(con_id>1000orcon_id=1)groupbytenant_name,event_group
2packetscaptured

#執行抓包命令的服務器是OBServer集群內的一個節點,2881是OB的對外服務的端口號
#-c,指定抓取5個包,實際上只抓到了2個符合過濾條件的包
#從獲取的SQL語句來看,猜測是由ocp_monagent監控組件發起的信息收集相關的SQL

--抓包時過濾包含“__all_”視圖的SQL
[root@10-186-65-73~]#tshark-ilo-Y'mysql.querycontains"__all_"'-dtcp.port==2881,mysql-Tfields-eframe.time-eip.host-emysql.query-c5
Runningasuser"root"andgroup"root".Thiscouldbedangerous.
Capturingon'Loopback'
"Jun7,20231838.895171334CST"127.0.0.1,127.0.0.1select/*+MONITOR_AGENTREAD_CONSISTENCY(WEAK)*/tenant_name,tenant_id,stat_id,valuefromv$sysstat,__all_tenantwherestat_idIN(10000,10001,10002,10003,10004,10005,10006,140002,140003,140005,140006,40030,60019,60020,60024,80040,80041,130000,130001,130002,130004,20000,20001,20002,30000,30001,30002,30005,30006,30007,30008,30009,30010,30011,30012,30013,40000,40001,40002,40003,40004,40005,40006,40007,40008,40009,40010,40011,40012,40018,40019,50000,50001,50002,50004,50005,50008,50009,50010,50011,50037,50038,60000,60001,60002,60003,60004,60005,60019,60020,60021,60022,60023,60024,80057,120000,120001,120009,120008)and(con_id>1000orcon_id=1)and__all_tenant.tenant_id=v$sysstat.con_idandclass'IDLE'groupbytenant_name
2packetscaptured

[root@10-186-65-73~]#tshark-ilo-Y'mysql.querycontains"__all_"'-dtcp.port==2881,mysql-Tfields-eframe.time-eip.host-emysql.query>/tmp/monit_ob.txt
Runningasuser"root"andgroup"root".Thiscouldbedangerous.
Capturingon'Loopback'
124^C
Youhavemailin/var/spool/mail/root
[root@10-186-65-73~]#cat/tmp/monit_ob.txt|grep-iselect|wc-l

#可用此方法來獲取一些常用的“__all_”視圖相關的監控SQL
#將捕獲的SQL重定向到文本文件,再用awk處理一下就能獲取完整的SQL

[root@10-186-65-73~]#awk-F""'{for(i=7;i<=NF;i++)printf("%s?",?$i);print?""}'?/tmp/monit_ob.txt|cat?-n|head?-5
?????1??select?/*+?MONITOR_AGENT?READ_CONSISTENCY(WEAK)?*/?zone,?name,?value,?time_to_usec(now())?as?current?from?__all_zone
?????2??select?/*+?MONITOR_AGENT?READ_CONSISTENCY(WEAK)?*/?__all_tenant.tenant_id,?tenant_name,?cache_name,?cache_size?from?__all_virtual_kvcache_info,?__all_tenant?where?__all_tenant.tenant_id?=?__all_virtual_kvcache_info.tenant_id?and?svr_ip?=?'10.186.65.73'?and?svr_port?=?2882
?????3??select?/*+?MONITOR_AGENT?READ_CONSISTENCY(WEAK)?*/?case?when?cnt?is?null?then?0?else?cnt?end?as?cnt,?tenant_name,?tenant_id?from?(select?__all_tenant.tenant_name,?__all_tenant.tenant_id,?cnt?from?__all_tenant?left?join?(select?count(1)?as?cnt,?tenant?as?tenant_name?from?__all_virtual_processlist?where?svr_ip?=?'10.186.65.73'?and?svr_port?=?2882?group?by?tenant)?t1?on?__all_tenant.tenant_name?=?t1.tenant_name)?t2
?????4??select?/*+?MONITOR_AGENT?READ_CONSISTENCY(WEAK)?*/?case?when?cnt?is?null?then?0?else?cnt?end?as?cnt,?tenant_name,?tenant_id?from?(select?__all_tenant.tenant_name,?__all_tenant.tenant_id,?cnt?from?__all_tenant?left?join?(select?count(`state`='ACTIVE'?OR?NULL)?as?cnt,?tenant?as?tenant_name?from?__all_virtual_processlist?where?svr_ip?=?'10.186.65.73'?and?svr_port?=?2882?group?by?tenant)?t1?on?__all_tenant.tenant_name?=?t1.tenant_name)?t2
?????5??select?/*+?MONITOR_AGENT?READ_CONSISTENCY(WEAK)?*/?__all_tenant.tenant_id,?tenant_name,?mem_used,?access_count,?hit_count?from?v$plan_cache_stat?join?__all_tenant?on?v$plan_cache_stat.tenant_id?=?__all_tenant.tenant_id?

4. tshark 抓包后用 Wireshark 解析

tshark 也可以像 tcpdump 一樣,先在服務器上抓包,再拿到 Wireshark 的圖形窗口中做進一步分析。

--抓取50個包并生成pcap文件
dmp2(master)~#tshark-dtcp.port==3332,mysql-f'tcpport3332andhost10.186.61.83'-c50-w/tmp/61_83.pcap
Runningasuser"root"andgroup"root".Thiscouldbedangerous.
Capturingon'eth0'

#注意,-w 指定的文件無需提前創建,但抓包會話必須對該目錄有寫入權限,否則會報權限不足的錯誤。

以下截圖為三次握手和四次揮手的過程。

7872b7c8-0c16-11ee-962d-dac502259ad0.png ? 7898cb16-0c16-11ee-962d-dac502259ad0.png

同樣地,也可以在 Wireshark 中將 mysql.query 字段展示出來:Wireshark -> 編輯 -> 首選項 -> 外觀 -> 列

78c6d7a4-0c16-11ee-962d-dac502259ad0.png

以下顯示過濾器表達式中的內容表示:將包中 TCP 端口為 3332,源端 IP 地址為 10.186.60.74,協議類型為 MySQL 的內容過濾并展示,效果如圖:

78f30356-0c16-11ee-962d-dac502259ad0.png

6結語

tshark 作為 Wireshark 的命令行工具,與我們比較熟悉的 tcpdump 相比,有其不少優點:

1. 更多的過濾條件

具有比 tcpdump 更多的過濾條件,可以更加精確地過濾所需的數據包,tshark 支持 Wireshark 過濾器語法的全部特性,并提供了更高級的功能。

2. 更加靈活的輸出格式

可以以不同的文件格式和標準輸出打印輸出捕獲數據,而 tcpdump 的輸出格式非常有限。

3. 更好的可讀性和易用性

輸出會更加易于閱讀,因為它會對分組進行解析并顯示其中包含的各種數據,比如協議、參數和錯誤信息等。這些信息對數據包分析非常有幫助。

4. 更加輕量級

相比于 tcpdump,占用的系統資源較少,并且不需要將所有數據存儲在內存中,從而能夠處理更大的數據流。

5. 更多的網絡協議

支持更多的網絡協議,包括 IPv6、IS-IS、IPX 等,而 tcpdump 支持的協議種類相對較少。

綜上,在一些較為復雜的數據包分析和網絡問題診斷場景中,推薦使用 tshark,而對于只需快速捕捉網絡流量的簡單應用場景,tcpdump 可能會更適合一些。

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據庫
    +關注

    關注

    7

    文章

    3845

    瀏覽量

    64613
  • 開源
    +關注

    關注

    3

    文章

    3398

    瀏覽量

    42662
  • MySQL
    +關注

    關注

    1

    文章

    829

    瀏覽量

    26695
  • DBA
    DBA
    +關注

    關注

    0

    文章

    18

    瀏覽量

    7894
  • Wireshark
    +關注

    關注

    0

    文章

    49

    瀏覽量

    6539

原文標題:DBA抓包神器tshark測評

文章出處:【微信號:OSC開源社區,微信公眾號:OSC開源社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    經典藍牙解析說明

    在無線通信協議的開發過程中,器是工程師們不可或缺的工具。掌握器的使用,就如同擁有了能夠洞察無線電波的“火眼金睛”。這不僅使我們能夠驗證發出的數據
    的頭像 發表于 07-24 09:04 ?2174次閱讀
    經典藍牙<b class='flag-5'>抓</b><b class='flag-5'>包</b>解析說明

    CC2640 使用BTool怎么用?

    CC2640使用BTool怎么用?我一直用simpleBLEPeripheral改寫的程序,燒寫simpleBLEPeripheral,使用BTool,出現[/url]。使用p
    發表于 03-16 11:27

    WIZnet芯片通訊時怎么?

    `Q:WIZnet芯片進行公網通訊或者芯片間通訊的話怎么?A:芯片和PC通訊的話可以直接通過Wireshark,如果芯片和公網直接通訊或者通訊是發生在芯片之間,則沒有辦法直接
    發表于 03-13 11:32

    加密后分析的問題?

    請問一下,我的zigbee設備全部都開啟了加密, 使用軟件的時候,數據都是加密的,我應該怎么解密分析這些數據呢,謝謝了
    發表于 06-01 14:22

    請問BLE-Dongle是否支持協議分析?請問怎么進行協議分析?

    如題,請問貴司的BLE-Dongle是否支持協議分析?請問怎么進行協議分析?
    發表于 09-07 07:12

    http神器(http analyzer )下載

    HTTP Analyzer Full V7是一款完全漢化免費的綠色版HTTP協議捕捉分析工具,這款http analyzer 綠色版可以進行網絡等功能,馬上下載這款http analyzer
    發表于 12-14 08:35 ?0次下載

    Wireshark數據網絡協議的分析

    Wireshark 是目前最受歡迎的包工具。它可以運行在 Windows、Linux 及 MAC OS X 操作系統中,并提供了友好的圖形界面。同時,Wireshark 提供功能強大的數據功能
    發表于 10-12 08:00 ?1次下載
    Wireshark數據<b class='flag-5'>抓</b><b class='flag-5'>包</b>網絡協議的分析

    USB數據軟件程序下載

    USB數據軟件程序下載
    發表于 09-09 16:01 ?9次下載

    MCU_Wireshark USB 過濾(特定端口地址)

    啟動WiresharkUSB的過程如下,這里點擊“開始”就可以進入界面了。不過,Wireshark啟動USB
    發表于 12-08 16:36 ?14次下載
    MCU_Wireshark USB <b class='flag-5'>抓</b><b class='flag-5'>包</b>過濾(<b class='flag-5'>抓</b>特定端口地址)

    為什么不到baidu的數據

    從上面的結果可以知道請求baidu.com時會去訪問39.156.66.10。于是用下面的tcpdump命令進行,大概的意思是eth0網卡且ip為39.156.66.10的網絡
    的頭像 發表于 01-05 10:43 ?1145次閱讀

    滲透測試過程中所使用的方法

    本篇只是簡單分享平常筆者滲透測試過程中所使用的方法,后面會繼續更新其他以及安卓端的方法,比較適合沒理解過這方面的新手作參考。
    的頭像 發表于 02-01 15:41 ?1652次閱讀

    Linux之tshark包工具安裝和使用

    tshark是一個網絡協議分析器。它允許您從實時網絡捕獲數據數據,或者從以前保存的捕獲文件讀取數據,或者將這些數據的解碼形式打印到標準輸出,或者將數據
    的頭像 發表于 05-22 14:33 ?2402次閱讀

    如何抓取app數據 網絡原理及實現

    要實現對App的網絡數據,需要監控App與服務器交互之間的網絡節點,監控其中任意一個網絡節點(網卡),獲取所有經過網卡中的數據,對這些數據按照網絡協議進行解析,這就是的基本原理
    發表于 08-11 09:30 ?3427次閱讀
    如何抓取app數據<b class='flag-5'>包</b> 網絡<b class='flag-5'>抓</b><b class='flag-5'>包</b>原理及實現

    如何利用eNSP進行實驗?

    使用Wireshark工具進行ping,并分析報文
    的頭像 發表于 09-12 09:32 ?4327次閱讀
    如何利用eNSP進行<b class='flag-5'>抓</b><b class='flag-5'>包</b>實驗?

    CentOS中使用tcpdump

    CentOS中使用tcpdump
    的頭像 發表于 10-28 14:48 ?313次閱讀
    主站蜘蛛池模板: 亚洲国产精品久久精品成人网站 | 亚洲综合春色另类久久 | 精品一区二区三区免费毛片 | 日本亚洲精品无码区国产电影 | 肉动漫无修3D在线观看 | 人妻无码AV中文系统久久免费 | 欧美日韩中文在线字幕视频 | 2021国产精品视频一区 | 99久久精品免费国产一区二区三区 | 99久久久无码国产精精品 | 色欲国产麻豆一精品一AV一免费 | 色综合欧美色综合七久久 | 成人影片大全 | 精品国产麻豆AV无码 | 男同志在线观看 | 视频一区国产在线二区 | 琪琪see色原网色原网站 | 91久久综合精品国产丝袜长腿 | 最近中文字幕在线看免费完整版 | 校园纯肉H教室第一次 | 国产69精品久久久久人妻刘玥 | 快播dvd吧| 忘忧草下载 | jjzzz日本| 九九热这里都是精品 | 欧洲馒头大肥p | 向日葵视频app下载18岁以下勿看 | 一本道dvd久久综合高清免费 | 97人人看碰人免费公开视频 | 久久4k岛国高清一区二区 | 迅雷成人下载 | 99国产精品欲AV蜜桃臀麻豆 | 亚洲国产在线观看免费视频 | 国产成人mv 在线播放 | 国产精品点击进入在线影院高清 | 久久免费精品视频 | 日本漫画大全无翼乌 | 免费在线观看a视频 | 国产精品高清在线观看地址 | 国产三区在线成人AV | 欧美精品成人a多人在线观看 |