如果已经安装过ngxtop,使用 sudo ngxtop
可以开始默认的nginx日志统计打印,如下:
如果你有以下需要:
1、配置了多个域名,要看多个域名的调用情况
2、进行域名替换,新老域名同时存在,要看请求结果
没有域名信息,无法满足需求
解决办法:
1、先修改nginx.conf的log_format
sudo vim /etc/nginx/nginx.conf
原样:
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
第2个参数 -
改为 $host
修改后:
log_format main '$remote_addr $host $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
保存
wq!
查看输出结果
sudo tail -f /var/log/nginx/access.log
现在输出结果是带有host的了
2、制定ngxtop的输出参数
- 打印host参数
sudo ngxtop -i 'status >= 200' print host
- 打印多个参数
sudo ngxtop -i 'status >= 200' print host remote_addr http_referer
- 按照host分组
sudo ngxtop --group-by host
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。