trx
Published on 2024-08-06 / 30 Visits
0

nginx日志配置为json格式

需要注意符号为英文

    log_format main escape=json '{'

                        '"客户端IP": "$remote_addr",'

                        '"认证用户": "$remote_user",'

                        '"访问时间": "$time_local",'

                        '"请求方法": "$request_method",'

                        '"请求url": "$request_uri",'

                        '"协议版本": "$server_protocol",'

                        '"状态码": "$status",'

                        '"响应体字节数": "$body_bytes_sent",'

                        '"引用页面": "$http_referer",'

                        '"用户代理": "$http_user_agent",'

                        '"转发IP": "$http_x_forwarded_for"'

                    '}';

    access_log  logs/access.log  main;
# jq处理日志
while IFS= read -r line; do
  jq -r '.["客户端IP"] as $ip | .["请求url"] as $url | .["状态码"] as $status | ($ip + " " + $url + " " + $status)' <<< "$line"; done < /usr/local/openresty/nginx/logs/access.log | sort | uniq -c | sort