<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          工具|MySQL、Redis、MongoDB網(wǎng)絡(luò)抓包工具

          共 2631字,需瀏覽 6分鐘

           ·

          2021-12-24 08:39

          簡(jiǎn)介

          go-sniffer?可以抓包截取項(xiàng)目(MySQL、Redis、MongoDB)中的請(qǐng)求并解析成相應(yīng)的語(yǔ)句,并格式化輸出。類(lèi)似于在之前的文章 MySQL抓包工具:MySQL Sniffer中介紹的mysql-sniffer。而 go-sniffer 可以對(duì)更多數(shù)據(jù)庫(kù)進(jìn)行抓包分析,現(xiàn)在來(lái)介紹在什么情況下會(huì)使用該工具的。

          使用

          下載:

          github 地址:https://github.com/40t/go-sniffer

          安裝:

          安裝依賴(lài)包:

          Centos:

          yum -y install libpcap-devel

          Ubuntu:

          apt-get install libpcap-dev

          另外還需要安裝golang,并且版本需要在1.10.3以上。

          wget https://golang.org/dl/go1.10.3.linux-amd64.tar.gz

          設(shè)置好相關(guān)的環(huán)境變量。如果不想要go環(huán)境 ,則可以直接在其他地方安裝好go-sniffer之后,復(fù)制到目標(biāo)服務(wù)器上直接使用。

          下載安裝

          -- 安裝好go環(huán)境的服務(wù)器上:

          go get -v -u github.com/40t/go-sniffer cp -rf $(go env GOPATH)/bin/go-sniffer /usr/local/bin

          --安裝到設(shè)置好的go環(huán)境變量的目錄里 go-sniffer

          參數(shù)說(shuō)明:go-sniffer --help

          [使用說(shuō)明]

          ????go-sniffer?[設(shè)備名]?[插件名]?[插件參數(shù)(可選)]

          ????[例子]
          ??????????go-sniffer?en0?redis??????????抓取redis數(shù)據(jù)包
          ??????????go-sniffer?en0?mysql?-p?3306??抓取mysql數(shù)據(jù)包,端口3306

          ????go-sniffer?--[命令]
          ???????????????--help?幫助信息
          ???????????????--env??環(huán)境變量
          ???????????????--list?插件列表
          ???????????????--ver??版本信息
          ???????????????--dev??設(shè)備列表
          ????[例子]
          ??????????go-sniffer?--list?查看可抓取的協(xié)議

          =======================================================================
          [設(shè)備名]?:?lo0?:???127.0.0.1
          [設(shè)備名]?:?en0?:?x:x:x:x:x5:x??192.168.1.3
          [設(shè)備名]?:?utun2?:???1.1.11.1

          語(yǔ)法:

          $?go-sniffer?lo0?mysql?
          $?go-sniffer?en0?redis?
          $?go-sniffer?eth0?http?-p?8080
          $?go-sniffer?eth1?mongodb


          使用場(chǎng)景

          一 Redis :審計(jì)、發(fā)現(xiàn)熱點(diǎn)key

          關(guān)于Redis的知識(shí)點(diǎn)就不說(shuō)了,主要來(lái)說(shuō)明如何使用go-sniffer來(lái)抓包分析。如果想發(fā)現(xiàn)哪個(gè)key的操作比較多或則是否存在熱點(diǎn)key,在Redis4.0之前沒(méi)有什么好辦法(4.0之后的LFU可以查看hotkey),只有通過(guò)統(tǒng)計(jì)各個(gè)客戶(hù)端發(fā)來(lái)的命令進(jìn)行統(tǒng)計(jì)。雖然monitor可以看到某一刻的key操作,但是該命令消耗巨大,可能會(huì)造成客戶(hù)端緩沖區(qū)溢出。并且也沒(méi)有合適的插件來(lái)進(jìn)行實(shí)現(xiàn)。即使有的話(huà),對(duì)Redis的性能肯定有一定的損耗,所以只有監(jiān)控其網(wǎng)絡(luò)來(lái)分析操作是對(duì)Redis服務(wù)的影響最小的。如對(duì)一個(gè)實(shí)例進(jìn)行監(jiān)控:

          go-sniffer eth0 redis -p 6379 >> out.log 對(duì)通過(guò)eth0網(wǎng)卡的客戶(hù)端訪問(wèn)端口為6379的Redis服務(wù)進(jìn)行抓包,并把信息寫(xiě)到文件中。該文件的日志格式:

          tcp?and?port?6379?get?abc
          ?get?abc
          ?get?abc
          ?get?abc
          ?get?opq
          ?get?opq
          ?get?opq
          ?get?opq
          ?get?xyz
          ?get?xyz
          ?get?xyz

          可以看到,該文件的信息就是操作日志,最后可以通過(guò)使用awk來(lái)分析,也可以把該日志文件寫(xiě)入到數(shù)據(jù)庫(kù)的表里進(jìn)行統(tǒng)計(jì)分析:

          grep?-avEi?"^#|^$|^tcp|^?INFO|^?AUTH|^?REPLCONF?ACK|^?CONFIG?GET"?out.txt?|awk?'{print?$1,$2}'|sort|?uniq?-c?|?sort?-nr?|head?-n?10
          ??????5?get?abc
          ??????4?get?opq
          ??????3?get?xyz

          注意:go-sniffer也需要消耗一定的資源,大致的消耗可以看以下表格:

          OPSRedis CPUsniffer CPU
          1.2W20%30%
          5.5W80%140%
          7.5W98%180%

          從上面看到,go-sniffer所需要的CPU資源是Redis的2倍左右。所以,在使用該工具之前,先判斷本身服務(wù)器的資源是否夠用。

          二 MySQL:審計(jì)

          go-sniffer eth0 mysql -p 3306 >> out.log

          三 MongoDB:審計(jì)

          go-sniffer eth0 mongodb -p 27017 >> out.log

          ??

          ? 來(lái)源:https://www.cnblogs.com/zhoujinyi/p/15343188.html


          END


          推薦閱讀

          一鍵生成Springboot & Vue項(xiàng)目!【畢設(shè)神器】

          Java可視化編程工具系列(一)

          Java可視化編程工具系列(二)


          順便給大家推薦一個(gè)GitHub項(xiàng)目,這個(gè) GitHub 整理了上千本常用技術(shù)PDF,絕大部分核心的技術(shù)書(shū)籍都可以在這里找到,

          GitHub地址:https://github.com/javadevbooks/books

          Gitee地址:https://gitee.com/javadevbooks/books

          電子書(shū)已經(jīng)更新好了,你們需要的可以自行下載了,記得點(diǎn)一個(gè)star,持續(xù)更新中..



          瀏覽 68
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  色婷婷在线播放 | 欧美日韩高清一区二区 | 中文字幕在线一区观看 | 亚洲AV无码乱码国产精品黑人 | 欧美体内射精 |