Nginx自定义Json日志格式
为配合ELK,EFK使用,需要将web日志格式设置为Json格式。
#vim /apps/nginx-1.18.0/conf/nginx.conf
#添加如下json格式
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",'
'"xff":"$http_x_forwarded_for",'
'"referer":"$http_referer",'
'"tcp_xff":"$proxy_protocol_addr",'
'"http_user_agent":"$http_user_agent",'
'"status":"$status"}';
access_log logs/access_json.log access_json;
#nginx -s reload
输出日志
#tail -f access_json.log
{"@timestamp":"2022-03-16T15:18:56+08:00","host":"10.0.0.117","clientip":"10.0.0.127","size":15,"responsetime":0.000,"upstreamtime":"-","upstreamhost":"-","http_host":"10.0.0.117","uri":"/index.html","xff":"-","referer":"-","tcp_xff":"-","http_user_agent":"curl/7.29.0","status":"200"}
{"@timestamp":"2022-03-16T15:18:56+08:00","host":"10.0.0.117","clientip":"10.0.0.127","size":15,"responsetime":0.000,"upstreamtime":"-","upstreamhost":"-","http_host":"10.0.0.117","uri":"/index.html","xff":"-","referer":"-","tcp_xff":"-","http_user_agent":"curl/7.29.0","status":"200"}
{"@timestamp":"2022-03-16T15:18:56+08:00","host":"10.0.0.117","clientip":"10.0.0.127","size":15,"responsetime":0.000,"upstreamtime":"-","upstreamhost":"-","http_host":"10.0.0.117","uri":"/index.html","xff":"-","referer":"-","tcp_xff":"-","http_user_agent":"curl/7.29.0","status":"200"}
{"@timestamp":"2022-03-16T15:18:56+08:00","host":"10.0.0.117","clientip":"10.0.0.127","size":15,"responsetime":0.000,"upstreamtime":"-","upstreamhost":"-","http_host":"10.0.0.117","uri":"/index.html","xff":"-","referer":"-","tcp_xff":"-","http_user_agent":"curl/7.29.0","status":"200"}
{"@timestamp":"2022-03-16T15:18:56+08:00","host":"10.0.0.117","clientip":"10.0.0.127","size":15,"responsetime":0.000,"upstreamtime":"-","upstreamhost":"-","http_host":"10.0.0.117","uri":"/index.html","xff":"-","referer":"-","tcp_xff":"-","http_user_agent":"curl/7.29.0","status":"200"}
验证json格式是否正确
推荐使用在线Json格式验证
https://www.json.cn/