上云无忧 > 文档中心 > 腾讯云容器服务实战教程 - NginxIngress 自定义日志
容器服务 TKE
腾讯云容器服务实战教程 - NginxIngress 自定义日志

文档简介:
容器服务 TKE 通过集成日志服务 CLS,提供了全套完整的产品化能力,实现 Nginx-ingress 日志采集、消费能力。更多请查看 Nginx-ingress 日志配置。若默认的日志索引不符合您的日志需求,您可以自定义日志索引,本文向您介绍如何更新 Nginx Ingress 的日志索引。
*此产品及展示信息均由腾讯云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠
容器服务 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,用户修改日志索引会被组件回滚覆盖。

2. Nginx Ingress 实例为 v0.49.3及以上版本。请登录 容器服务控制台,在集群详情 > 服务与路由中选择 NginxIngress,单击实例右侧的查看YAML。在 YAML 中,镜像 ccr.ccs.tencentyun.com/paas/nginx-ingress-controller 的版本需要大于等于 v0.49.3。

3. 已开启 Nginx Ingress 日志服务。操作详情见 TKE Nginx-ingress 采集日志

操作步骤

注意
修改日志结构需要了解 Nginx Ingress 的日志流,如日志的输出、日志的采集、日志的索引的配置,其中日志输出和采集缺失或配置出错,都会导致日志修改失败。

步骤1:修改 Nginx Ingress 实例的日志输出格式

Nginx Ingress 实例的日志配置在该实例的主配置 ConfigMap 中。ConfigMap 的名称为 实例名-ingress-nginx-controller,需要修改的 Key 是 log-format-upstream,如下图所示:

示例

在日志中增加两个连续的字符串:$namespace$service_name,并放在日志内容的最后,添加位置如下图所示:

如您需要了解更多 Nginx Ingress 的日志字段,请参考 文档

步骤2:修改集群内日志采集上报 Agent 的格式

集群内日志采集规则在 logconfigs.cls.cloud.tencent.com 型资源对象中。请登录 容器服务控制台,在集群详情 > 资源对象浏览器中,您可以找到该资源对象,名称为 实例名-ingress-nginx-controller。您可在编辑YAML中进行修改。

需要修改字段包括:
beginningRegex:日志开始的正则表达式
keys:日志的字段
logRegex:日志结束的正则表达式
正则和 Nginx 的日志行格式匹配。建议在 Nginx 已有日志格式后面追加字段,同时声明在 keys 的末尾。并追加该字段的正则解析到 beginningRegex、logRegex 的末尾。

示例

在 keys 后面追加 步骤1 中的两个字段,然后分别在 beginningRegex、logRegex 的末尾增加正则表达式字符串。如下图所示:

(可选)步骤3:修改 CLS 的日志索引格式

如果需要检索该字段的能力,则需要在对应日志主题中,添加新字段的索引。您可以在日志服务控制台操作,操作完成之后所有采集到的日志都可以通过索引进行检索。操作详情见 配置索引

恢复初始设置

因为修改日志规则步骤较复杂,且涉及到正则表达式,操作过程中有任何一个步骤错误,都可能导致日志采集失败。若日志采集报错,此时建议您恢复原始的日志采集能力,您需要先关闭日志采集功能,然后再次 开启日志采集
相似文档
  • 使用场景: nginx-ingress 是使用 Nginx 作为反向代理和负载平衡器的 Kubernetes 的 Ingress 控制器,容器服务 TKE 提供了产品化的能力,可以直接在集群内安装和使用 Nginx-ingress。有关安装 Nginx-ingress 的详细信息,请参见 安装 Nginx-ingress 实例。
  • 使用场景: Kubernetes 使用事件(Event)反馈集群中资源对象的状态,它通常表示系统中的一些状态变化。例如在安装或修改工作负载时,您可以通过事件信息判断当前资源对象是否存在异常,以及查看导致异常的原因。事件的保留时间有限,在 TKE 集群中事件可保留1小时。
  • 操作场景: Prometheus 社区开发了 JMX Exporter 用于导出 JVM 的监控指标,以便使用 Prometheus 来采集监控数据。当您的 Java 业务容器化至 Kubernetes 后,可通过本文了解如何使用 Prometheus 与 JMX Exporter 来监控 Java 应用。
  • 操作场景: MySQL 是常用的关系型数据库,MariaDB 作为 MySQL 的分支版本,兼容 MySQL 协议,也越来越流行。在 Kubernetes 环境中,可借助开源的 mysqld-exporter 来使用 Prometheus 监控 MySQL 与 MariaDB。您可通过本文了解 Prometheus 并开始使用。
  • 本文主要描述使用自建 Prometheus 采集腾讯云容器服务 TKE 的监控数据时如何配置采集规则。TKE 集群内按照节点类型分为常规节点和超级节点,Prometheus 通过配置 scrape_config 来抓取节点和容器的监控数据,由于节点性质不同因此需要配置的采集规则略有差异。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部