nginx 實時請求監測
ngxtop
-
ngxtop 是一個實時命令行工具,可以分析 nginx 訪問日誌,以表格形式將 http 請求的主要指標直觀展示。ngxtop 將 nginx 的訪問請求數據實時動態展示,並支持按字段過濾請求。
-
安裝
centos 環境安裝
# 安裝python yum install epel-release yum install python-pip # 安裝ngxtop pip install ngxtop
ubuntu 環境安裝,測試系統爲 Ubuntu 24.04.2 LTS
apt upgrade -y apt install python3 sudo apt install pipx pipx ensurepath source ~/.bashrc pipx install ngxtop
-
參數說明
-
-c:指定 nginx 配置文件,以從中解析 log_format 和 access_log 路徑。如
ngxtop -c /usr/local/nginx/conf/nginx.conf
-
-i:添加過濾條件。如
ngxtop -c /usr/local/nginx/conf/nginx.conf -i 'status == 200'
-
-p:添加過濾條件,與
-i
的區別是-p
在讀取日誌前過濾,不匹配的行不會讀取,-i
是在讀取日誌後過濾,需要讀取全部日誌行。 -
-l:指定 access-log 文件。如
ngxtop -l /usr/local/nginx/logs/access_log.log
-
-f:指定 nginx 日誌格式,與 log_format 指令定義的格式一致。
-
--no-follow:默認情況 ngxtop 只會解析最新的訪問日誌,此參數可以強制解析 access-log 的當前內容。如
ngxtop -c /usr/local/nginx/conf/nginx.conf --no-follow
-
-t:在實時監控模式下,數據刷新時間間隔,默認 2 秒。如
ngxtop -c /usr/local/nginx/conf/nginx.conf -t 1
-
-g:group by 分組字段,默認按 request_path 字段分組。如按客戶端 IP 分組:
ngxtop -c /usr/local/nginx/conf/nginx.conf -t 1 -g remote_addr
-
-w:對分組結果的篩選字段,類似 sql 的 having 效果。如
ngxtop -c /usr/local/nginx/conf/nginx.conf -w 'avg_bytes_sent > 30' -t 1
-
-o:指定排序字段。如
ngxtop -c /usr/local/nginx/conf/nginx.conf -o count -t 1
-
-n:設置顯示的記錄條數,默認 10 條。如
ngxtop -c /usr/local/nginx/conf/nginx.conf -o count -t 1 -n 5
-
-a:在分析結果中添加聚合字段,如
sum、avg、min、max
等字段。 -
-v:啓用詳細輸出。
-
-d:調試信息,打印每一行及解析記錄。
-
-h:打印幫助信息。
-
--version:打印版本信息。
測試
-
指定配置文件:
ngxtop -c /usr/local/nginx/conf/nginx.conf
-
加過濾條件:
ngxtop -c /usr/local/nginx/conf/nginx.conf -i 'status == 200'
-
解析當前 access_log:
ngxtop -c /usr/local/nginx/conf/nginx.conf --no-follow
-
指定分組條件:
ngxtop -c /usr/local/nginx/conf/nginx.conf -t 1 -g remote_addr
-
設置刷新時間爲 1 秒:
ngxtop -c /usr/local/nginx/conf/nginx.conf -t 1
-
排序:
ngxtop -c /usr/local/nginx/conf/nginx.conf -o count -t 1
-
顯示前 5 個結果:
ngxtop -c /usr/local/nginx/conf/nginx.conf -o count -t 1 -n 5
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/jl1JkoXeZXSILTWcG0W0fg