通常我們在調試Web應用、RESTFUL服務或者排錯PAC (proxy auto config) 以及檢查是否有惡意訪問等會去通過錯誤日誌日誌或者嗅探數據包的方式去排錯;常見的嗅探數據包軟件有tcpdump、wireshark;但是針對HTTP需要對數據包進行過濾,顯示格式也更不容易讀,Httpry工具就能更方便易讀的嗅探HTTP流量
安裝httpry
基於Debian(Ubuntu or Linux Mint),基礎庫並沒有httpry包,我們用源碼來安裝
$ sudo apt-get install gcc make git libpcap0.8-dev $ git clone https://github.com/jbittel/httpry.git $ cd httpry $ make $ sudo make install
基於Fedora,CentOS or RHEL可以使用EPEL來yum安裝
$ sudo yum install httpry
也可以通過源碼安裝
$ git clone https://github.com/jbittel/httpry.git $ cd httpry $ make $ sudo make install
httpry的基本使用
httpry通過監聽網卡接口來實時嗅探HTTP的請求和響應
$ sudo httpry -i <network-interface>
將HTTP 數據包保存爲二進制文件
$ sudo httpry -i eth0 -b output.dump
重放HTTP數據包
$ sudo httpry -r output.dump
將HTTP 數據包保存爲文本文件
$ sudo httpry -i eth0 -o output.txt
httpry的高級應用
監控特定的HTTP請求方式(GET,POST,PUT,HEAD,CONNECT等),使用-m參數
如果你httpry下載的源代碼,你會發現有一組Perl腳本的源代碼,幫助分析httpry的輸出
這些腳本httpry /scripts/plugins目錄中找到。如果你想編寫一個自定義解析器httpry的輸出,這些腳本是很好的例子.他們的一些功能:
hostnames: 顯示主機名列表.
find_proxies:探測web代理
search_terms:查找在搜索服務裏面的搜索詞.
content_analysis: 發現uri包含特定的關鍵詞
xml_output: 轉換爲XML格式輸出
log_summary: 生成日誌彙總
db_dump: 日誌文件數據轉儲到一個數據庫中
$ cd httpry/scripts $ perl parse_log.pl -d ./plugins <httpry-output-file>
執行之後httpry/scripts目錄下生成txt/xml文件,例如log_summary.txt
相關工具 : ngxtop
參考文檔:
http://xmodulo.com/2014/06/monitor-nginx-web-server-command-line-real-time.html
http://dumpsterventures.com/jason/httpry/
http://www.ttlsa.com/nginx/nginx-modules-ngxtop-ttlsa/