注意黑体部分 [root@CentOS7 conf]#pwd /apps/nginx/conf [root@CentOS7 conf]#vim server/www_yunlong_net.conf

1 server { 2 listen 80; 3 server_name www.yunlong.net; 4 access_log /apps/nginx/logs/www_yunlong_net_access.log; 5 error_log /apps/nginx/logs/www_yunlong_net_error.log;
6 7 location / { 8 root /data/nginx/html/pc; 9 index index.html; 10 } 11 location /image { 12 index index.html; 13 root /data/nginx/html/pc; 14 } 15 location /login { 16 index index.html; 17 root /data/nginx/html/pc; 18 auth_basic "login password"; 19 auth_basic_user_file /apps/nginx/conf/.htpasswd; 20 } 21 }

www.yunlong.net日志分类存放于黑体路径下

通过访问www.yunlong.net tail -f /apps/nginx/logs/www_yunlong_net_access.log 可查看相应日志

进入主配置文件,在http下添加自定义json格式日志 http { include mime.types; default_type application/octet-stream;

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

#access_log  logs/access.log  main;

log_format access_json '{"@timestamp":"$time_iso8601",'
 '"host":"$server_addr",'
 '"clientip":"$remote_addr",'
 '"size":$body_bytes_sent,'
 '"responsetime":$request_time,'
 '"upstreamtime":"$upstream_response_time",'
 '"upstreamhost":"$upstream_addr",'
 '"http_host":"$host",'
 '"uri":"$uri",'
 '"domain":"$host",'
 '"xff":"$http_x_forwarded_for",'
 '"referer":"$http_referer",'
 '"tcp_xff":"$proxy_protocol_addr",'
 '"http_user_agent":"$http_user_agent",'
 '"status":"$status"}';
access_log  /apps/nginx/logs/access_json.log  access_json;        

进入辅助配置文件添加access_json server{
2 listen 80; 3 server_name www.yunlong.net; 4 5 access_log /apps/nginx/logs/www_yunlong_net_access.log access_json; 6 7 location /echo { 8 echo hello; 9 default_type text/html; 10 } 11 12 location /main { 13 index index.html; 14 default_type text/html; 15 16 set $name yunlong; 17 echo $name; 18 } 19 20 location /sub1 { 21 echo_sleep 1; 22 echo sub1; 23 } 24 25 location /sub2 { 26 echo_sleep 1; 27 echo sub2; 28 } 29 30 }

导入一个json格式的日志文件access_json.log 编写py脚本 vim log.py #!/usr/bin/env python #coding:utf-8 #Author:xxx status_200= [] status_404= [] with open("access_json.log") as f: for line in f.readlines(): line =eval(line) if line.get("status") == "200": status_200.append(line.get) elif line.get("status") == "404": status_404.append(line.get) else: print("状态码 ERROR") f.close()

print "状态码200的有--",len(status_200) print "状态码404的有--",len(status_404)

执行脚本 python log.py