在nginx中,可以配置日志的格式,下面列出http和stream模块的nginx日志模板
http
默认格式
参数模板
'[$time_iso8601]'
' $connection $connection_requests $remote_addr $remote_user'
' "$request_method $request_uri $server_protocol"'
' $status $body_bytes_sent'
' $http_referer $body_bytes_sent '
' "$http_user_agent" "$http_x_forwarded_for"'
' $request_time ';
日志示例
[2021-11-17T13:09:50+08:00] 47863 1 172.16.6.46 - "GET /api/book HTTP/1.1" 200 201 - "Apache-HttpClient/4.5.3 (Java/1.8.0_291)" "-" 0.003
json格式
参数模板
'{"@timestamp": "$time_iso8601", '
'"connection": "$connection", '
'"connection_requests": "$connection_requests", '
'"remote_addr": "$remote_addr", '
'"remote_user": "$remote_user", '
'"request_method": "$request_method", '
'"request_uri": "$request_uri", '
'"server_protocol": "$server_protocol", '
'"status": "$status", '
'"body_bytes_sent": "$body_bytes_sent", '
'"http_referer": "$http_referer", '
'"http_user_agent": "$http_user_agent", '
'"http_x_forwarded_for": "$http_x_forwarded_for", '
'"request_time": "$request_time"}';
参数示例
{"@timestamp": "2021-11-17T14:23:07+08:00", "tunnel_id": "6836905143044751427", "connection": "4538", "connection_requests": "1", "remote_addr": "172.16.6.46", "remote_user": "-", "request_method": "GET", "request_uri": "/api/book", "server_protocol": "HTTP/1.1", "status": "200", "body_bytes_sent": "201", "http_referer": "-", "http_user_agent": "Apache-HttpClient/4.5.3 (Java/1.8.0_291)", "http_x_forwarded_for": "-", "request_time": "0.003"}
参数说明
序号 | 参数 | 参数示例 | 参数说明 |
1 | $time_iso8601 | 2021-11-17T13:09:50+08:00 | ISO 8601 时间格式 |
4 | $connection | 47863 | 网络连接编号 |
5 | $connection_requests | 1 | 当前连接的请求数 |
6 | $remote_addr | 172.16.6.46 | 客户端的 IP |
7 | $remote_user | - | 客户端的用户名称 |
8 | $request_method | GET | 用户请求方法 |
9 | $request_uri | /api/book | 用户请求的 URI 及请求方法 |
10 | $server_protocol | HTTP/1.1 | 请求协议 |
11 | $status | 200 | 用户请求响应状态码 |
12 | $body_bytes_sent | 201 | 用户请求返回的响应体字节数 |
13 | $http_referer | - | HTTP 请求头中属性字段 referer |
14 | $http_user_agent | Apache-HttpClient/4.5.3 (Java/1.8.0_291) | 用户客户端浏览器标识 |
15 | $http_x_forwarded_for | - | 客户端 IP |
16 | $request_time | 0.003 | 请求时间 |
Stream
默认格式
参数模板
'[$time_iso8601] $connection $remote_addr'
' "$server_addr:$server_port" $status "$upstream_addr"'
' $bytes_received $bytes_sent $session_time'
' $proxy_protocol_addr:$proxy_protocol_port';
日志示例
[2021-11-17T13:25:00+08:00] 5378534 172.16.6.46 "172.16.3.187:55000" 200 "172.16.3.210:9992" 12 12 9.054 -:-
json格式
参数模板
'{"@timestamp": "$time_iso8601", '
'"connection": "$connection", '
'"remote_addr": "$remote_addr", '
'"server_addr": "$server_addr:$server_port" '
'"status": "$status" '
'"upstream_addr": "$upstream_addr" '
'"bytes_received": "$bytes_received" '
'"bytes_sent": "$bytes_sent" '
'"session_time": "$session_time" '
'"proxy_protocol_addr": "$proxy_protocol_addr:$proxy_protocol_port"}';
日志示例
{"@timestamp": "2021-11-17T14:52:33+08:00", "connection": "5436322", "remote_addr": "172.16.6.46", "server_addr": "172.16.3.187:55000" "status": "500" "upstream_addr": "-" "bytes_received": "0" "bytes_sent": "0" "session_time": "9.304" "proxy_protocol_addr": "-:-"}
参数说明
序号 | 参数 | 参数示例 | 参数说明 |
1 | $time_iso8601 | 2021-11-17T13:25:00+08:00 | ISO 8601 时间格式 |
4 | $connection | 5378534 | 网络连接编号 |
5 | $remote_addr | 172.16.6.46 | 客户端的 IP |
6 | $server_addr | 172.16.3.187 | Nginx 服务器地址 |
7 | $server_port | 55000 | Nginx 服务器端口 |
8 | $status | 200 | 用户请求响应状态码 |
9 | $upstream_addr | 172.16.3.210:9992 | 被代理服务器地址 |
10 | $bytes_received | 12 | 接收字节数 |
11 | $bytes_sent | 12 | 发送字节数 |
12 | $session_time | 9.054 | 连接会话时间 |
13 | $proxy_protocol_addr | - | 代理协议地址 |
14 | $proxy_protocol_port | - | 代理协议端口 |