如何配置nginx-ingress日志格式
nginx-ingress controller的日志格式如果不配置,默认就是nginx的日志格式,并且不指定都是标准输出,如果你想方便后续对日志的收集,你需要配置将nginx-ingress controller日志按照指定格式输出到对应日志文件。
配置日志输出到日志文件
修改nginx-ingress controller的configmap配置,添加下面的日志路径配置。
1 |
|
配置日志格式
nginx-ingress指定自定义日志格式需要在configmap加上log-format-upstream配置
1 |
|
日志格式可以配置成普通格式和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名称端口 |
普通日志格式配置方式
1 |
|
json格式的配置方式
1 |
|
如何配置nginx-ingress日志格式
https://www.niewx.cn/2021/11/11/2021-11-11-How-to-configure-nginx-ingress-log-format/