当前位置:首页 > 开发 > 开源软件 > 正文

通过Nginx,Tomcat访问日志(access log)记录请求耗时

发表于: 2015-07-02   作者:ronin47   来源:转载   浏览:
摘要: 一、Nginx通过$upstream_response_time $request_time统计请求和后台服务响应时间 nginx.conf使用配置方式: log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_r

一、Nginx通过$upstream_response_time $request_time统计请求和后台服务响应时间


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"'
'$connection $upstream_addr '
'upstream_response_time $upstream_response_time request_time $request_time ';


$request_time和$upstream_response_time之间差别:

$request_time包含了用户数据接收时间,而真正程序的响应时间应该用$upstream_response_time
所以如果用户网络较差,或者传递数据较大时,$request_time会比$upstream_response_time大很多
详细参考:http://wuzhangshu927.blog.163.com/blog/static/114224687201310674652147/


二、Tomcat通过%D或%T统计请求响应时间

server.xml使用配置方式
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u [%{yyyy-MM-dd HH:mm:ss}t] %{X-Real_IP}i &quot;%r&quot; %s %b %D %F" />

%D - 官方解释:Time taken to process the request, in millis,处理请求的时间,以毫秒为单位
%T - 官方解释:Time taken to process the request, in seconds,处理请求的时间,以秒为单位
%F - 官方解释:Time taken to commit the response, in millis,提交响应的时间,以毫秒为单位
详细说明:http://tomcat.apache.org/tomcat-7.0-doc/config/valve.html#Access_Logging

 

三、通过awk命令辅助统计access.log

1.简单统计nginx访问日志access log每分钟请求数

awk -F: '{count[$2":"$3]++} END {for (minute in count) print minute, count[minute]}' /usr/local/nginx/logs/access.log | sort > count.log

结果如下所示(count.log)
18:30 2086
18:31 2184
18:32 2176
18:33 2122
18:34 2128
18:35 2179
...

参考:http://huoding.com/2013/01/26/215

 

2.统计请求响应时间超过10s的记录

awk '($NF > 10){print $0}' /usr/local/tengine/logs/cut-log/access_2015-01-12.log >t10_0112.log

更多awk命令统计访问日志参考:http://www.ibm.com/developerworks/cn/linux/l-cn-awk-httplog/

通过Nginx,Tomcat访问日志(access log)记录请求耗时

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
在nginx接收到请求之后, 需把请求分发到后端WEB服务集群. 在这里需要记录分发日志, 来分析后端每台W
反向代理服务器位于实际的服务器之前,他能够缓存服务器响应,加速访问,同时也启到了负载均衡服务
昨天晚写的时候已经下班了、时间紧迫、写的略简! 昨天说过、接到部署的任务之后、首先想到的是apac
Linux下安装与配置基于nginx的tomcat负载均衡和集群 (通过cookie分发请求) 由于最近项目组一直在
软件下载地址:http://awstats.sourceforge.net/ 我下载的是稳定版本awstats-6.95.tar.gz 先上传下
今天把用了2年的tomcat重新整了下,终于解决了日志的记录问题,一般我们启动tomcat有两种方式: 1.
今天把用了2年的tomcat重新整了下,终于解决了日志的记录问题,一般我们启动tomcat有两种方式: 1.
环境: 1. tomcat6 2. AWStats7.下载地址:http://awstats.sourceforge.net/ 3. Perl.下载地址:htt
关于 ngx_realtime_request是nginx用来统计虚拟主机流量的模块, 首先和大家说下这个模块是基于域名
我一般访问tomcat都是通过http协议的,其实只要通过简单设置,我们同样可以通过https协议访问tomcat
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号