容器服务 TKE 通过集成日志服务 CLS,提供了全套完整的产品化能力,实现 Nginx-ingress 日志采集、消费能力。更多请查看 Nginx-ingress 日志配置。若默认的日志索引不符合您的日志需求,您可以自定义日志索引,本文向您介绍如何更新 Nginx Ingress 的日志索引。
前提条件
1. Nginx Ingress 为 v1.1.0及以上版本。请登录 容器服务控制台,在集群详情 > 组件管理中查看 Nginx Ingress 的组件版本。
注意:
仅Nginx Ingress 为 v1.1.0及以上版本才支持该能力,若是 v1.1.0以下版本例如v1.0.0,用户修改日志索引会被组件回滚覆盖。
![](https://qcloudimg.tencent-cloud.cn/image/document/17cc114fc6f39f5f9287cee3ec65a7cb.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/17cc114fc6f39f5f9287cee3ec65a7cb.png)
2. Nginx Ingress 实例为 v0.49.3及以上版本。请登录 容器服务控制台,在集群详情 > 服务与路由中选择 NginxIngress,单击实例右侧的查看YAML。在 YAML 中,镜像 ![](https://qcloudimg.tencent-cloud.cn/image/document/363dbba1cfbd693e672725111d14df38.png)
ccr.ccs.tencentyun.com/paas/nginx-ingress-controller
的版本需要大于等于 v0.49.3。n![](https://qcloudimg.tencent-cloud.cn/image/document/363dbba1cfbd693e672725111d14df38.png)
3. 已开启 Nginx Ingress 日志服务。操作详情见 TKE Nginx-ingress 采集日志。
操作步骤
注意
修改日志结构需要了解 Nginx Ingress 的日志流,如日志的输出、日志的采集、日志的索引的配置,其中日志输出和采集缺失或配置出错,都会导致日志修改失败。
步骤1:修改 Nginx Ingress 实例的日志输出格式
Nginx Ingress 实例的日志配置在该实例的主配置 ConfigMap 中。ConfigMap 的名称为 ![](https://qcloudimg.tencent-cloud.cn/image/document/8c86bf2563d8f35155af6a3fe7826747.png)
实例名-ingress-nginx-controller
,需要修改的 Key 是 log-format-upstream
,如下图所示:n![](https://qcloudimg.tencent-cloud.cn/image/document/8c86bf2563d8f35155af6a3fe7826747.png)
示例
在日志中增加两个连续的字符串:![](https://qcloudimg.tencent-cloud.cn/image/document/45f50c6980fc425f99f0562cc1ef2464.png)
$namespace
和 $service_name
,并放在日志内容的最后,添加位置如下图所示:n![](https://qcloudimg.tencent-cloud.cn/image/document/45f50c6980fc425f99f0562cc1ef2464.png)
步骤2:修改集群内日志采集上报 Agent 的格式
集群内日志采集规则在 logconfigs.cls.cloud.tencent.com 型资源对象中。请登录 容器服务控制台,在集群详情 > 资源对象浏览器中,您可以找到该资源对象,名称为 ![](https://qcloudimg.tencent-cloud.cn/image/document/ba084658bc4cde7c9b4a1b2569399bc8.png)
实例名-ingress-nginx-controller
。您可在编辑YAML中进行修改。n![](https://qcloudimg.tencent-cloud.cn/image/document/ba084658bc4cde7c9b4a1b2569399bc8.png)
需要修改字段包括:
beginningRegex:日志开始的正则表达式
keys:日志的字段
logRegex:日志结束的正则表达式
正则和 Nginx 的日志行格式匹配。建议在 Nginx 已有日志格式后面追加字段,同时声明在 keys 的末尾。并追加该字段的正则解析到 beginningRegex、logRegex 的末尾。
示例
![](https://qcloudimg.tencent-cloud.cn/image/document/19d51436c831e24992cb9cea4192f809.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/19d51436c831e24992cb9cea4192f809.png)
(可选)步骤3:修改 CLS 的日志索引格式
![](https://qcloudimg.tencent-cloud.cn/image/document/bc98830a4d42603481aad7c9ba53e9ad.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/bc98830a4d42603481aad7c9ba53e9ad.png)
恢复初始设置
因为修改日志规则步骤较复杂,且涉及到正则表达式,操作过程中有任何一个步骤错误,都可能导致日志采集失败。若日志采集报错,此时建议您恢复原始的日志采集能力,您需要先关闭日志采集功能,然后再次 开启日志采集。