首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >如何配置nginx-ingress日志格式

如何配置nginx-ingress日志格式

原创
作者头像
聂伟星
发布于 2026-10-28 15:58:47
发布于 2026-10-28 15:58:47
450
举报

如何配置nginx-ingress日志格式

nginx-ingress controller的日志格式如果不配置,默认就是nginx的日志格式,并且不指定都是标准输出,如果你想方便后续对日志的收集,你需要配置将nginx-ingress controller日志按照指定格式输出到对应日志文件。

配置日志输出到日志文件

修改nginx-ingress controller的configmap配置,添加下面的日志路径配置。

代码语言:bash
复制
access-log-path: /var/log/nginx/nginx_access.log
error-log-path: /var/log/nginx/nginx_error.log

配置日志格式

nginx-ingress指定自定义日志格式需要在configmap加上log-format-upstream配置

代码语言:bash
复制
log-format-upstream: $remote_addr - $remote_user 

日志格式可以配置成普通格式和json格式,对应的自动如下表说明。

| 字段说明 | 描述 |

| $proxy_protocol_addr | 启用代理协议时的远程地址 |

| $remote_addr | 客户端的源 IP 地址 |

| $remote_user | 用户名与基本身份验证一起提供 |

| $time_local | 当地时间在通用日志格式中 |

| $request | 完整原始请求行 |

| $status | 响应状态 |

| $body_bytes_sent | 发送给客户端的字节数,不包括响应头 |

| $http_referer | Referer 标头的值 |

| $http_user_agent | User-Agent 标头的值 |

| $request_length | 请求长度(包括请求行、头和请求主体) |

| $request_time | 从客户端读取第一个字节以来的时间已过 |

| $proxy_upstream_name | 上游的名称。格式是upstream--- |

| $proxy_alternative_upstream_name | 替代上游的名称。格式是upstream--- |

| $upstream_addr | 上游服务器的 IP 地址和端口(或通往域插座的路径)。如果在请求处理过程中联系了多个服务器,则其地址按逗号进行分离。 |

| $upstream_response_length | 从上游服务器获得的响应长度 |

| $upstream_response_time | 花费在接收上游服务器响应上的时间为秒数,分辨率为毫秒 |

| $upstream_status | 从上游服务器获得的响应状态代码 |

| $req_id | 请求的随机生成 ID |

| $namespace | ingress的命名空间 |

| $ingress_name | ingress名称 |

| $service_name | service名称 |

| $service_port | service名称端口 |

普通日志格式配置方式

代码语言:bash
复制
$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $request_length $request_time [$proxy_upstream_name] [$proxy_alternative_upstream_name] [$upstream_addr] [$upstream_response_length] [$upstream_response_time] [$upstream_status] $req_id $namespace $ingress_name  $service_name $service_port

json格式的配置方式

代码语言:bash
复制
'{"time": "$time_local","remote_addr": "$remote_addr","x-forward-for": "$proxy_add_x_forwarded_for","request_id": "$req_id","remote_user": "$remote_user","bytes_sent": "$body_bytes_sent","request_time": "$request_time","status": "$status","vhost": "$host","request_proto": "$server_protocol","path": "$uri","request_query": "$args","request_length": "$request_length","duration": "$request_time","method": "$request_method","http_referrer": "$http_referer","http_user_agent": "$http_user_agent", "namespace": "$namespace", "ingress_name": "$ingress_name","service_name": "$service_name","service_port": "$service_port"}'

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 如何配置nginx-ingress日志格式
    • 配置日志输出到日志文件
    • 配置日志格式
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档