<filter kube.ingress-nginx.nginx-ingress-controller>
@type parser
# Fluentd provides a few built-in formats for popular and common formats such as "apache" and "json".
format nginx
key_name log
# Retain the original "log" field after parsing out the data.
reserve_data true
# The access logs and error logs are interleaved with each other and have
# different formats, so ignore parse errors, as they're expected
suppress_parse_error_log true
</filter>
<filter kube.ingress-nginx.nginx-ingress-controller>
@type parser
# Fluentd provides a few built-in formats for popular and common formats such as "apache" and "json".
format /(?<remote_addr>[^ ]*) - \[(?<proxy_protocol_addr>[^ ]*)\] - (?<remote_user>[^ ]*) \[(?<time>[^\]]*)\] "(?<method>\S+)(?: +(?<request>[^\"]*) +\S*)?" (?<code>[^ ]*) (?<size>[^ ]*) "(?<referer>[^\"]*)" "(?<agent>[^\"]*)" (?<request_length>[^ ]*) (?<request_time>[^ ]*) \[(?<proxy_upstream_name>[^ ]*)\] (?<upstream_addr>[^ ]*) (?<upstream_response_length>[^ ]*) (?<upstream_response_time>[^ ]*) (?<upstream_status>[^ ]*)/
key_name log
# Retain the original "log" field after parsing out the data.
reserve_data true
# The access logs and error logs are interleaved with each other and have
# different formats, so ignore parse errors, as they're expected
suppress_parse_error_log true
</filter>
<match kube.ingress-nginx.nginx-ingress-controller>
type stdout
</match>