ngxtop怎么打印域名?

2023-08-03  本文已影响0人  秋天下雨淋湿冬天

如果已经安装过ngxtop,使用 sudo ngxtop可以开始默认的nginx日志统计打印,如下:

如果你有以下需要:
1、配置了多个域名,要看多个域名的调用情况
2、进行域名替换,新老域名同时存在,要看请求结果

没有域名信息,无法满足需求


image.png

解决办法:

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的输出参数

sudo ngxtop -i 'status >= 200' print host
image.png
sudo ngxtop -i 'status >= 200' print host remote_addr http_referer
image.png
sudo ngxtop --group-by host
image.png

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。

上一篇 下一篇

猜你喜欢

热点阅读