Nginx配置更详细的Json格式的访问日志

2024-12-09 by Jinyang | Filed under 技术相关.

log_format main escape=json
‘{“@timestamp”:”$time_iso8601″,’
‘”@source”:”$server_addr”,’
‘”hostname”:”$hostname”,’
‘”host”:”$host”,’
‘”domain”:”$server_name”,’
‘”ip”:”$http_x_forwarded_for”,’
‘”client”:”$remote_addr”,’
‘”request_method”:”$request_method”,’
‘”remote_port”:”$remote_port”,’
‘”scheme”:”$scheme”,’
‘”referer”:”$http_referer”,’
‘”request”:”$request_uri”,’
‘”args”:”$args”,’
‘”request_length”:$request_length,’
‘”size”:$body_bytes_sent,’
‘”status”:$status,’
‘”responsetime”:$request_time,’
‘”upstreamtime”:”$upstream_response_time”,’
‘”upstreamaddr”:”$upstream_addr”,’
‘”http_user_agent”:”$http_user_agent”,’
‘”http_cookie”:”$http_cookie”,’
‘”https”:”$https”,’
‘”ssl_protocol”:”$ssl_protocol”,’
‘”ssl_cipher”:”$ssl_cipher”,’
‘”x_request_id”:”$sent_http_x_request_id”,’
‘”request_id”:”$request_id”‘
‘}’

  1. $remote_user
    记录客户端的认证用户名,如果有身份验证的话。nginxCopy code'"remote_user":"$remote_user"'
  2. $time_local
    本地时间戳,格式为 [dd/Mon/yyyy:hh:mm:ss zone]。nginxCopy code'"@timestamp":"$time_local"'
  3. $request_length
    请求体的长度(包括请求头和请求数据)。nginxCopy code'"request_length":$request_length'
  4. $body_bytes_sent
    服务器向客户端发送的响应体字节数。nginxCopy code'"body_bytes_sent":$body_bytes_sent'
  5. $http_referer
    引荐页面,通常表示请求从哪个页面跳转过来。nginxCopy code'"referer":"$http_referer"'
  6. $http_user_agent
    客户端发送的 User-Agent 字段,用于记录客户端浏览器、操作系统等信息。nginxCopy code'"http_user_agent":"$http_user_agent"'
  7. $http_cookie
    客户端发送的 Cookie 信息。nginxCopy code'"http_cookie":"$http_cookie"'
  8. $uri
    请求的 URI(不包含查询参数)。nginxCopy code'"uri":"$uri"'
  9. $request_time
    处理请求的总时间(以秒为单位,精确到毫秒)。nginxCopy code'"request_time":$request_time'
  10. $upstream_response_time
    从上游服务器收到响应的时间(如果存在)。nginxCopy code'"upstream_time":"$upstream_response_time"'
  11. $upstream_addr
    上游服务器的地址。nginxCopy code'"upstream_addr":"$upstream_addr"'
  12. $remote_port
    客户端的端口号。nginxCopy code'"remote_port":"$remote_port"'
  13. $server_name
    服务器的名称。nginxCopy code'"server_name":"$server_name"'
  14. $ssl_cipher
    使用的 SSL 加密套件(如果请求是通过 HTTPS 进行的)。nginxCopy code'"ssl_cipher":"$ssl_cipher"'
  15. $ssl_protocol
    使用的 SSL 协议(例如 TLSv1.2, TLSv1.3 等)。nginxCopy code'"ssl_protocol":"$ssl_protocol"'
  16. $geoip_city
    使用 GeoIP 模块记录客户端的城市(需要 GeoIP 模块支持)。nginxCopy code'"city":"$geoip_city"'
  17. $geoip_country
    使用 GeoIP 模块记录客户端的国家。nginxCopy code'"country":"$geoip_country"'
  18. $sent_http_x_request_id
    如果你的应用程序中有设置自定义的 X-Request-Id 请求标识符,可以通过此变量记录。nginxCopy code'"x_request_id":"$sent_http_x_request_id"'
  19. $request_id
    记录 Nginx 自动生成的请求标识符。nginxCopy code'"request_id":"$request_id"'

通过组合这些参数,你可以记录更加详细的日志,帮助分析请求、流量、性能等各方面的信息。根据你的需求,可以灵活调整和扩展日志格式。


发表评论

您的电子邮箱不会被公开。 标记为 * 的区域必须填写

返回顶部