使用LTS采集ASM日志
操作场景
应用服务网格(ASM)关键组件(如 istiod、istio-ingressgateway、istio-egressgateway、sidecar、istio-operator)默认以标准输出方式打印日志,日志无法持久化存储。当 Pod 重启或被驱逐时,日志将丢失,导致无法进行事后故障定位。
通过本章节的操作,您可以在云日志服务(LTS)中为 ASM 关键组件配置日志采集,实现日志的持久化存储,便于故障定位和定界。同时,您还可以配置日志告警规则,当日志中出现错误信息时及时收到通知。
约束与限制
- 本文档描述的是对 ASM 网格基础设施组件(控制面和数据面组件)的标准输出日志采集,与 ASM 控制台内置的"监控中心-访问日志"功能定位不同,具体区别请参见与 ASM 监控中心-访问日志的区别。
前提条件
- 已创建 ASM 网格,且网格状态为"运行中"。
- 已开通 LTS 服务。
- 已获取 kubectl 命令行工具,且已配置集群访问权限。
操作步骤
参考云容器引擎CCE应用日志接入LTS指导配置参数。
- 为 ASM 各关键组件分别创建日志流,便于按组件维度查询和过滤日志。
- 登录云日志服务控制台。
- 进入“日志管理”页面,单击“创建日志组”。
- 输入日志组名称(如"ASM-logs"),设置日志存储周期(建议不少于 7 天),单击"确定"。
- 单击日志组名称对应的
,单击“创建日志流”,在创建日志流页面,详情请参见创建日志流。 - 分别为各关键组件创建日志流。
表1 创建日志流 日志流名称
说明
istiod
控制面组件标准输出日志,包含配置下发、服务发现和证书管理等操作记录。
istio-ingressgateway
入口网关组件标准输出日志,包含外部请求接入和转发记录。
istio-egressgateway
出口网关组件标准输出日志,包含网格内服务访问外部网络的记录。
服务名A-sidecar
服务A的Sidecar 代理标准输出日志,包含流量转发和监控数据采集记录。
istio-operator
控制面组件operator标准输出日志,包含更新IstioOperator CR资源等操作记录。仅1.18及以下版本涉及该组件。
- 日志流创建完成后,您需要在 AOM 接入中心为每个关键组件配置日志采集规则。
- 登录云日志服务控制台。
- 在左侧导航栏中,选择“日志接入 > 接入中心”,在类型下方选择“运行环境”或“云服务”,鼠标悬浮在CCE卡片上,单击“接入日志(LTS)”进入配置页面。
- 选择“采集到自定义日志流”,执行如下操作步骤:
- 单击“CCE集群”后的目标框,在下拉列表中选择具体的集群。
- 单击“所属日志组”后的目标框,在下拉列表中选择具体的日志组,若没有所需的日志组,单击“所属日志组”目标框后的“新建”,在弹出的创建日志组页面创建新的日志组。
- 单击“所属日志流”后的目标框,在下拉列表中选择具体的日志流,若没有所需的日志流,单击“所属日志流”目标框后的“新建”,在弹出的创建日志流页面创建新的日志流。
- 单击“下一步:检查依赖项”。
- 单击自动修复。
- 选择主机组。
- 输入采集配置名称,K8S Pod正则匹配,下一步。
各关键组件的具体配置参数如下表所示。
表2 各关键组件采集配置参数 组件名称
采集配置名称(示例)
K8S Pod 正则匹配
容器名称
命名空间
istiod
asm-istiod-日志采集
istiod-.*
discovery
istio-system
istio-ingressgateway
asm-ingressgateway-日志采集
istio-ingressgateway-.*
istio-proxy
istio-system
istio-egressgateway
asm-egressgateway-日志采集
istio-egressgateway-.*
istio-proxy
istio-system
服务 A 的 sidecar
asm-服务A-sidecar-日志采集
服务A的Pod名称正则
istio-proxy
业务命名空间
istio-operator
asm-istio-operator-日志采集
istio-operator-.*
istio-operator
istio-operator
- "采集配置名称"为自定义名称,建议按"asm-组件名-日志采集"的格式命名,便于识别和管理。
- "K8S Pod 正则匹配"需根据实际 Pod 名称填写。上述正则表达式为示例,Pod 名称格式为 组件名-随机字符串,请根据集群中实际的 Pod 名称调整正则表达式。可通过执行 kubectl get pods -n istio-system 命令查看实际 Pod 名称。
- 对于服务 A 的 sidecar,Pod 正则匹配应填写业务 Pod 的名称正则,而非 istio 组件名称。容器名称固定为 istio-proxy。
- 若需同时采集多个业务 Pod 的 sidecar 日志,可在同一命名空间下配置多条采集规则,或在 Pod 正则匹配中使用通配符匹配多个 Pod。
- 对每个关键组件重复步骤 2~7,确保所有组件的日志都能采集到对应的日志流。
- 验证日志采集
- 登录 云日志服务控制台。
- 选择步骤一创建的日志组和日志流(如"ASM-logs" > "istiod")。
- 查看是否能看到对应组件的日志记录。如果能看到日志内容,说明日志采集配置成功。
- 如果日志流中没有日志,请确认对应组件有实际运行日志输出。可以通过在集群中执行 kubectl logs -n istio-system <pod_name> 命令查看组件标准输出日志。
- (可选)配置日志告警规则,日志采集配置完成后,您可以在 LTS 中配置日志告警规则,当日志中出现错误信息时及时收到通知。
本文档与 ASM 监控中心-访问日志的区别
ASM 用户指南中已有"监控中心-访问日志"章节,本文档与该章节在日志类型、采集对象和功能定位上存在本质区别:
| 对比维度 | 本文档:使用 LTS 采集 ASM 日志 | 监控中心-访问日志(用户指南已有章节) |
|---|---|---|
| 日志类型 | 组件标准输出日志(stdout/stderr),即网格组件自身的运行日志,包括sidecar的AccessLog | 业务服务访问日志(AccessLog),即 sidecar 代理记录的服务间通信请求日志,仅包括sidecar的AccessLog,不包括pilot-agent、discovery等容器的标准输出日志 |
| 采集对象 | 网格基础设施组件:istiod、istio-ingressgateway、istio-egressgateway、sidecar(istio-proxy)、istio-operator的标准输出 | 网格内所有 sidecar 代理产生的 HTTP/gRPC 请求访问记录(请求方法、URL、响应码、延迟等) |
| 日志内容 | 组件级别运行信息:配置下发结果、证书轮换记录、xDS 协议交互、Envoy 异常、资源限制告警等 | 请求级别访问记录:客户端信息、目标服务、请求路径、HTTP 响应码、请求耗时、流量标识等(遵循 Envoy Access Log 格式) |
| 采集方式 | 通过 ICAgent采集采集容器标准输出(/dev/stdout、/dev/stderr),上报到 LTS 日志流 | 通过 ASM 网格配置将 sidecar AccessLog 上报到指定的 LTS 日志流(需在创建网格或网格扩展中开启) |
| 查看位置 | 在 LTS 控制台的日志管理页面查看,支持日志检索、日志告警、日志转储等 LTS 全功能 | 在 ASM 控制台的"监控中心 > 访问日志"页面查看,提供请求分布图、属性过滤和详情导出,也可在 LTS 查看 |
| 告警能力 | 支持基于日志内容的自定义告警规则(如错误级别日志数量超阈值告警),可配置多种通知渠道 | 以页面展示和查询为主,不提供基于访问日志的自定义告警规则配置能力 |
| 使用场景 | 适用于开发人员和运维人员排查应用服务网格(ASM)相关问题,包括:
| 适用于开发人员和运维人员排查业务服务间的通信问题(如请求失败、响应延迟、服务不可达等业务层面的异常) |
| 必要性 | 建议配置 | 按需开启 |
本文档与"监控中心-访问日志"互为补充:访问日志关注业务服务间的通信异常,本文档关注网格基础设施组件自身的运行异常。建议两者结合使用,构建从组件运行到业务通信的全维度日志排查体系。


