yum install epel-release
yum install -y python-pip
pip install ngxtop
ngxtop --help
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 -l /usr/local/web/nginx/logs/access.log
按rquest_path且是404的前10請求:ngxtop -l /home/wwwlogs/www.vpser.net.log --no-follow top request_path --filter 'status == 404'
按總bytes sent最高的前10:ngxtop -l /home/wwwlogs/www.vpser.net.log --no-follow --order-by 'avg(bytes_sent) * count'
按remote address進行排序前10:ngxtop -l /home/wwwlogs/www.vpser.net.log --no-follow --group-by remote_addr
顯示400或更高返回狀態碼的且只顯示request、status、http_referer這三列資訊:ngxtop -l /home/wwwlogs/www.vpser.net.log --no-follow -i 'status >= 400' print request status http_referer
顯示bytes_sent平均值且狀態碼為200且request_path以vpser開始的前10:ngxtop -l /home/wwwlogs/www.vpser.net.log --no-follow avg bytes_sent --filter 'status == 200 and request_path.startswith("vpser")'