https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/log-format/
The default configuration uses a custom logging format to add additional information about upstreams, response time and status.
log_format upstreaminfo '{{ if $cfg.useProxyProtocol }}$proxy_protocol_addr{{ else }}$remote_addr{{ end }} - ' '[$the_real_ip] - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" "$http_user_agent" ' '$request_length $request_time [$proxy_upstream_name] $upstream_addr ' '$upstream_response_length $upstream_response_time $upstream_status';
Placeholder | Description |
---|---|
$proxy_protocol_addr | remote address if proxy protocol is enabled |
$remote_addr | remote address if proxy protocol is disabled (default) |
$the_real_ip | the source IP address of the client |
$remote_user | user name supplied with the Basic authentication |
$time_local | local time in the Common Log Format |
$request | full original request line |
$status | response status |
$body_bytes_sent | number of bytes sent to a client, not counting the response header |
$http_referer | value of the Referer header |
$http_user_agent | value of User-Agent header |
$request_length | request length (including request line, header, and request body) |
$request_time | time elapsed since the first bytes were read from the client |
$proxy_upstream_name | name of the upstream. The format is upstream-<namespace>-<service name>-<service port> |
$upstream_addr | the IP address and port (or the path to the domain socket) of the upstream server. If several servers were contacted during request processing, their addresses are separated by commas. |
$upstream_response_length | the length of the response obtained from the upstream server |
$upstream_response_time | time spent on receiving the response from the upstream server as seconds with millisecond resolution |
$upstream_status | status code of the response obtained from the upstream server |
Sources: