date: 2020-03-31title: nginx日志配置json格式 #标题
tags: nginx日志配置json格式 #标签
categories: nginx # 分类
很多朋友都是以文本的方式来记录日志,然后在logstash上通过filter中的grok模块来处理为json格式的。
这里我写下另一种方式,在nginx记录日志时就变成json的格式,方便ElasticSearch对其检索。
nginx日志格式配置如下:
[root@nginx logs]# cat ../conf/nginx.conf # 查看配置文件log_format log_json '{"@timestamp":"$time_local",''"host": "$server_addr",''"clientip": "$remote_addr",''"size": $body_bytes_sent,''"responsetime": $request_time,''"upstreamtime": "$upstream_response_time",''"upstreamhost": "$upstream_addr",''"http_host": "$host",''"url": "$uri",''"xff": "$http_x_forwarded_for",''"referer": "$http_referer",''"agent": "$http_user_agent",''"status": "$status"}';access_log logs/access.log log_json;
上述调用的都是nginx内置变量,关于这些变量的含义,可以参考博文:nginx内置预定义变量
记录的日志如下:
{"@timestamp":"31/Mar/2020:12:10:23 +0800","host": "192.168.20.2","clientip": "192.168.20.88","size": 82896,"responsetime": 0.006,"upstreamtime": "0.006","upstreamhost": "192.168.20.3:80","http_host": "192.168.20.2","url": "/img/header-background.png","xff": "-","referer": "http://192.168.20.2/","agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36","status": "200"}
