从Nginx的Access log分析系统的健康度

公司很多系统都可以在运维管理平台里面查看应用的健康度,所谓健康度就是某个接口在某段时间内的响应时间、访问次数、响应状态码情况,比如说A接口在2016-2-22这天,访问次数为6000次,平均响应时间800ms,200的状态码有5800次,404的状态码有20次,500的状态码有20次,从这些数据里面可以看出A接口在这天里面的健康度情况,一般每天上班前都会来运维系统里面看看自己负责的应用里面的接口在前一天或者前一段时间内的使用情况



之前一直不知道这些健康度信息怎么分析出来的,今天刚好了解到,这些健康度的数据分析来自,应用的Nginx服务器里面access.log日志,access.log主要是记录每个经过nginx服务器的请求的信息,在nginx.conf里面主要这样子配置的:

   access_log  logs/access.log  tpynormal;
   log_format  tpynormal  '$remote_addr | [$time_local] | $host | "$request" | '
                 '$status | $body_bytes_sent | "$http_referer" | '
                 '"$http_user_agent" | "$http_x_forwarded_for" | '
                 '$upstream_addr | $upstream_status | $upstream_response_time | '
                 '$server_addr | $request_time ';

上面第一行主要是配置access.log的路径,第二行开始主要配置每一条日志信息的格式,其中typnormal是日志格式名称,typnormal后面的配置主要是每条请求日志的信息

   log_format  tpynormal  
   $remote_addr | #远程客户端用户名(IP)
   [$time_local] |#记录访问时间与时区
   $host | #访问主机名
   "$request" | #请求名称
   $status |#用户记录请求状态
   $body_bytes_sent | #用于记录发送给客户端主体内容大小
   "$http_referer" | #用于记录是从哪个链接页面过来的
   "$http_user_agent" #用于记录客户端浏览器信息
   "$http_x_forwarded_for" | #HTTP的请求端真实的IP
   '$upstream_addr |#处理请求upstream服务器地址
   $upstream_status |#处理请求upstream应答状态
   $upstream_response_time | '#经过upstream配置服务器请求的响应时间
  '$server_addr |#应用服务器地址
   $request_time '#请求响应时间


access.log里面生成的日志格式这样:

192.168.11.11 | [22/Feb/2016:09:58:03 +0800] | www.test.com | "GET /test/interface HTTP/1.1" | 200 | 978 | "http://www.test.com/test.html" | 
"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36" |
 "117.168.98.100, 127.0.0.1" | 192.168.243.63:8080 | 200 | 0.021 | 192.168.237.10 | 0.021



猜你喜欢

转载自blog.csdn.net/zth1002/article/details/50715351
今日推荐