Nginx日志實時監(jiān)控、排查整理工具 - ngxtop
要實時查看日志文件變動我們首先想到的應該是tail -f /path/to/log,但是這樣看網站的訪問日志是相當崩潰的,好一點可以寫個腳本進行篩選,但是大部分人還是不擅長的,今天VPS偵探就推薦給大家一個Nginx日志工具:ngxtop。
說起top工具有很多如:iftop、htop、ntop等,今天說的ngxtop功能也毫不遜色,不僅能實時監(jiān)控Nginx日志的訪問還可以對以前的日志進行排查整理。
安裝ngxtop
ngxtop是使用python編寫的,所以使用pip安裝最簡單了,可能有些用戶沒有安裝pip,下面我們一塊加上pip的安裝步驟:
Fedora:yum install python-pip
CentOS/RHEL需先安裝EPEL,安裝完后:yum install python-pip
Debian/Ubuntu:apt-get install python-pip
安裝完pip就可以安裝ngxtop:pip install ngxtop
某ss啥的你們懂的,通過pip安裝也是很簡單的。
ngxtop使用參數
ngxtop 參數 print|top|avg|sum
ngxtop info 顯示日志格式信息
- -l <file>或--access-log <file> 設置日志路徑
- -f <format>或--log-format <format> 設置日志格式,默認格式combined,另外一種較常用格式為common
- --no-follow 處理以前的日志,實時日志不做處理
- -t <seconds>?或 --interval <seconds> 刷新頻率,默認2秒
- -g <var>或 --group-by <var> 按變量分組,默認顯示?request_path
- -w <var>或 --having <expr> 篩選 [default: 1]
- -o <var>或 --order-by <var> 輸出的排序方式,默認: 訪問數
- -n <number>或 --limit <number> 顯示top多條,默認前top 10條
- -a <exp> ...或 --a <exp> ... 對輸出字段做處理,可選?sum, avg, min, max
- -v或 --verbose 詳細輸出
- -d或 --debug debug模式,輸出每行及記錄
- -h或 --help 顯示幫助詳細
- --version 顯示版本信息
高級參數
- -c <file>或 --config <file> 指定nginx配置文件,自動分析日志格式
- -i <filter-expression>或 --filter <filter-expression> 滿足表達式的過濾將被處理
- -p <filter-expression>或 --pre-filter <filter-expression> in-filter expression to check in pre-parsing phase.
另外一些變量可以在分析時用到,名字含義同日志格式里的設置:remote_addr、remote_user、time_local、request、request_path、status、body_bytes_sent、http_referer、http_user_agent。
ngxtop使用實例
實時監(jiān)控日志
ngxtop -l /home/wwwlogs/www.0794baidu.com.log
雖然直接執(zhí)行ngxtop會自動搜索nginx.conf,但是直接解析里面默認虛擬主機的,建議直接指定日志文件。可以指定上-n 限定條數,也可以指定上-g http_user_agent按useragent查看。
日志分析
ngxtop -l /home/wwwlogs/www.0794baidu.com.log --no-follow 可以加一下參數進行詳細分析,下面幾個例子
按rquest_path且是404的前10請求:ngxtop -l /home/wwwlogs/www.0794baidu.com.log --no-follow top request_path --filter 'status == 404'
按總bytes sent最高的前10:ngxtop -l /home/wwwlogs/www.0794baidu.com.log --no-follow --order-by 'avg(bytes_sent) * count'
按remote address進行排序前10:ngxtop -l /home/wwwlogs/www.0794baidu.com.log --no-follow --group-by remote_addr
顯示400或更高返回狀態(tài)碼的且只顯示request、status、http_referer這三列信息:ngxtop -l /home/wwwlogs/www.0794baidu.com.log --no-follow -i 'status >= 400' print request status http_referer
顯示bytes_sent平均值且狀態(tài)碼為200且request_path以vpser開始的前10:ngxtop -l /home/wwwlogs/www.0794baidu.com.log --no-follow avg bytes_sent --filter 'status == 200 and request_path.startswith("vpser")'
大家可以組合前面的命令進行日志的實時監(jiān)控和日志排查整理,相信ngxtop會給大家?guī)硪恍┕芾砩系姆奖恪?/p>
VPS論壇邀請碼:https://bbs.vpser.net/reg.php?invitecode=39a41e6e55fmGsAG?有效期至:2016-3-25 19:18
>>轉載請注明出處:VPS偵探 本文鏈接地址:http://www.0794baidu.com/manage/ngxtop.html









