nginx: 分析最慢的url(日志中增加请求时长)

一,设置nginx的日志格式:

1,编辑nginx.conf

[root@blog conf]# vi nginx.conf 

说明:比默认设置只是在末尾增加了 $request_time 一项

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for" $request_time';

2,增加项的意义:

$request_time 整个请求的总时间 

单位:秒

单位为秒。

        官网描述:request processing time in seconds with a milliseconds resolution; time elapsed between the first bytes were read from the client and the log write after the last bytes were sent to the client。

        指的就是从接受用户请求的第一个字节到发送完响应数据的时间,即$request_time包括接收客户端请求数据的时间、后端程序响应的时间、发送响应数据给客户端的时间(不包含写日志的时间)。

官方文档地址:

https://nginx.org/en/docs/http/ngx_http_log_module.html

二,用脚本得到查询最慢的url

脚本:

[root@blog nginx]# more parse_slow_url.sh
#!/bin/sh
awk '{print $1,$4,$7,$NF}' $1 | awk -F '"' '{print $1,$2,$3,$4}' | sort -k4 -rn | head -100

执行:

[root@blog nginx]# ./parse_slow_url.sh /web/weblogs/api_demo.log 

 

posted @ 2024-09-20 11:58  刘宏缔的架构森林  阅读(84)  评论(0编辑  收藏  举报