tencent cloud

容器服务

动态与公告
产品动态
公告
产品发布记录
产品简介
产品概述
产品优势
产品架构
应用场景
产品功能
基本概念
原生 Kubernetes 名词对照
容器服务高危操作
地域和可用区
开源组件
购买指南
购买指引
购买 TKE 标准集群
购买原生节点
购买超级节点
快速入门
新手指引
快速创建一个标准集群
入门示例
容器应用部署 Check List
集群配置
标准集群概述
集群管理
网络管理
存储管理
节点管理
GPU 资源管理
远程终端
应用配置
工作负载管理
服务和配置管理
组件和应用管理
弹性伸缩
容器登录方式
可观测配置
运维可观测性
成本洞察和优化
调度配置
调度组件概述
资源利用率优化调度
业务优先级保障调度
Qos 感知调度
安全和稳定性
容器服务安全组设置
身份验证和授权
应用安全
多集群管理
计划升级
备份中心
云原生服务指南
云原生 etcd
Prometheus 监控服务
TKE Serverless 集群指南
TKE 注册集群指南
实践教程
集群
Serverless 集群
调度
安全
服务部署
网络
发布
日志
监控
运维
Terraform
DevOps
弹性伸缩
容器化
微服务
成本管理
混合云
AI
故障处理
节点磁盘爆满排障处理
节点高负载排障处理
节点内存碎片化排障处理
集群 DNS 解析异常排障处理
集群 Kube-Proxy 异常排障处理
集群 API Server 网络无法访问排障处理
Service&Ingress 网络无法访问排障处理
Service&Ingress 常见报错和处理
Nginx Ingress 偶现 Connection Refused
CLB Ingress 创建报错排障处理
Pod 网络无法访问排查处理
Pod 状态异常与处理措施
授权腾讯云售后运维排障
CLB 回环问题
API 文档
History
Introduction
API Category
Making API Requests
Elastic Cluster APIs
Resource Reserved Coupon APIs
Cluster APIs
Third-party Node APIs
Relevant APIs for Addon
Network APIs
Node APIs
Node Pool APIs
TKE Edge Cluster APIs
Cloud Native Monitoring APIs
Scaling group APIs
Super Node APIs
Other APIs
Data Types
Error Codes
TKE API 2022-05-01
常见问题
TKE 标准集群
TKE Serverless 集群
运维类
隐患处理
服务类
镜像仓库类
远程终端类
事件类
资源管理类
服务协议
TKE Service Level Agreement
TKE Serverless Service Level Agreement
联系我们
词汇表

日志采集

PDF
聚焦模式
字号
最后更新时间: 2023-06-08 11:16:57
本文主要介绍如何通过控制台的方式将注册集群的日志接入到 腾讯云日志服务 CLS

操作场景

日志采集功能是容器服务 TKE 为用户提供的集群内日志采集工具,可以将集群内服务或集群节点特定路径文件的日志发送至 腾讯云日志服务 CLS。日志采集功能适用于需要对 Kubernetes 集群内服务日志进行存储和分析的用户。
日志采集功能需要为每个集群手动开启并配置采集规则。日志采集功能开启后,日志采集 Agent 会在集群内以 DaemonSet 的形式运行,并根据用户通过日志采集规则配置的采集源、CLS 日志主题和日志解析方式,从采集源进行日志采集,将日志内容发送到日志消费端。

使用须知

已经创建注册集群,且注册集群的状态为运行中
目前注册集群的日志仅支持投递至 腾讯云日志服务 CLS,暂不支持其他日志消费端。
请在开启前保证集群节点上有足够资源。开启日志采集功能会占用您集群的部分资源。
占用 CPU 资源:0.11 - 1.1 核,日志量过大时可根据情况自行调大。
占用内存资源:24 - 560MB,日志量过大时可根据情况自行调大。
日志长度限制:单条 512K,如超过会截断。
若使用日志采集功能,请确认 Kubernetes 集群内节点能够访问日志消费端。TKE 提供公网和内网两种方式进行日志投递,用户可以根据业务情况自行选择:
公网投递:集群日志将通过公网的方式进行投递至日志服务 CLS ,需要集群中的节点具有访问公网的能力。
内网投递:集群日志将通过内网的方式进行投递至日志服务 CLS ,需要集群内的节点与腾讯云日志服务 CLS 内网互通。选择该选项前,请 联系我们 进行确认。

概念

日志采集 Agent:TKE 用于采集日志信息的 Agent,采用 Loglistener,在集群内以 DaemonSet 的方式运行。
日志规则:用户可以使用日志规则指定日志的采集源、日志主题、日志解析方式和配置过滤器。
日志采集 Agent 会监测日志采集规则的变化,变化的规则会在最多 10s 内生效。
多条日志采集规则不会创建多个 DaemonSet,但过多的日志采集规则会使得日志采集 Agent 占用的资源增加。
日志源:包含指定容器标准输出、容器内文件以及节点文件。
在采集容器标准输出日志时,用户可选择所有容器、或指定工作负载和指定 Pod Labels 内的容器服务日志作为日志的采集源。
在采集容器文件路径日志时,用户可指定工作负载或 Pod Labels 内容器的文件路径日志作为采集源。
在采集节点文件路径日志时,用户可设定日志的采集源为节点文件路径日志。
消费端:用户选择日志服务 CLS 的日志集和日志主题作为消费端。
提取模式:日志采集 Agent 支持将采集到的日志以单行文本、JSON、分隔符、多行文本和完全正则的形式发送至用户指定的日志主题。
过滤器:开启过滤器后可以根据用户指定的规则采集部分日志,key 支持完全匹配,过滤规则支持正则匹配,如仅采集 ErrorCode = 404 的日志。

操作步骤

开启日志采集

1. 登录 容器服务控制台,选择左侧导航栏中的运维功能管理
2. 功能管理页面上方选择地域和注册集群,单击需要开启日志采集的集群右侧的设置
3. 在“设置功能”页面,单击日志采集编辑,开启日志采集,选择投递方式后单击确定

配置日志规则

1. 登录 容器服务控制台,选择左侧导航栏中的日志管理 > 日志规则
2. 功能管理页面上方选择地域和注册集群,筛选需要配置日志采集规则的集群,单击新建
3. 新建日志采集规则页面,选择采集类型,并配置日志源。目前采集类型支持容器标准输出容器文件路径节点文件路径
采集容器标准输出日志
采集容器内文件日志
采集节点文件日志
选择容器标准输出采集类型,并根据需求配置日志源。该类型日志源支持一次选择多个 Namespace 的工作负载。如下图所示:

选择容器文件路径采集类型,并配置日志源。如下图所示:

采集文件路径支持文件路径和通配规则,例如当容器文件路径为 /opt/logs/*.log,可以指定采集路径为 /opt/logs,文件名为 *.log
注意:
如果选择采集类型为“容器文件路径”时,对应的“容器文件路径”不能为软链接,否则会导致软链接的实际路径在采集器的容器内不存在,采集日志失败。

选择节点文件路径采集类型,用户可根据实际需求进行添加自定义的 “metadata” ,将采集到的日志信息附加指定 Key-Value 形式的 “metadata”,附加 metadata 将会添加到日志记录中。如下图所示:
注意
一个节点日志文件只能被一个日志主题采集。

路径支持文件路径和通配规则,例如当需要采集所有文件路径形式为 /opt/logs/service1/*.log/opt/logs/service2/*.log,可以指定采集路径的文件夹为 /opt/logs/service* ,文件名为 *.log
说明:
对于容器的标准输出及容器内文件(非 hostPath 挂载),除了原始的日志内容, 还会带上容器或 kubernetes 相关的元数据(例如:产生日志的容器 ID)一起上报到 CLS,方便用户查看日志时追溯来源或根据容器标识、特征(例如:容器名、labels)进行检索。 容器或 kubernetes 相关的元数据请参考下方表格:
字段名
含义
container_id
日志所属的容器 ID。
container_name
日志所属的容器名称。
image_name
日志所属容器的镜像名称 IP。
namespace
日志所属 pod 的 namespace。
pod_uid
日志所属 pod 的 UID。
pod_name
日志所属 pod 的名字。
pod_lable_{label name}
日志所属 pod 的 label(例如一个 pod 带有两个 label:app=nginx,env=prod,则在上传的日志会附带两个 metedata:pod_label_app:nginx,pod_label_env:prod)。

4. 配置日志服务消费端,选择日志集和相应的日志主题,可以选择新建和已有日志主题。如下图所示:

注意
腾讯云日志服务 CLS 目前只能支持同地域的容器集群进行日志采集上报。
若日志集下已存在 500 个日志主题,则不能新建日志主题。
5. 支持在高级设置内通过指定 Key 值将日志投递到指定分区,该功能默认不开启,日志随机投放,当开启后,带有同样 Key 值的日志,将投递到相同的分区。支持输入 TimestampKey(默认@timestamp)和指定时间戳格式。如下图所示:

6. 单击下一步,选择日志提取模式。如下图所示:
注意
当前仅投递到 CLS 支持配置日志解析方式。

解析模式
说明
相关文档
单行全文
一条日志仅包含一行的内容,以换行符 \\n 作为一条日志的结束标记,每条日志将被解析为键值为 CONTENT 的一行完全字符串,开启索引后可通过全文检索搜索日志内容。日志时间以采集时间为准。
多行全文
指一条完整的日志跨占多行,采用首行正则的方式进行匹配,当某行日志匹配上预先设置的正则表达式,就认为是一条日志的开头,而下一个行首出现作为该条日志的结束标识符,也会设置一个默认的键值 CONTENT,日志时间以采集时间为准。支持自动生成正则表达式。
单行 - 完全正则
指将一条完整日志按正则方式提取多个 key-value 的日志解析模式,您需先输入日志样例,其次输入自定义正则表达式,系统将根据正则表达式里的捕获组提取对应的 key-value。支持自动生成正则表达式。
多行 - 完全正则
适用于日志文本中一条完整的日志数据跨占多行(例如 Java 程序日志),可按正则表达式提取为多个 key-value 键值的日志解析模式,您需先输入日志样例,其次输入自定义正则表达式,系统将根据正则表达式里的捕获组提取对应的 key-value。支持自动生成正则表达式。
JSON
JSON 格式日志会自动提取首层的 key 作为对应字段名,首层的 value 作为对应的字段值,以该方式将整条日志进行结构化处理,每条完整的日志以换行符 \\n 为结束标识符。
分隔符
指一条日志数据可以根据指定的分隔符将整条日志进行结构化处理,每条完整的日志以换行符 \\n 为结束标识符。日志服务在进行分隔符格式日志处理时,您需要为每个分开的字段定义唯一的 key,无效字段即无需采集的字段可填空,不支持所有字段均为空。
7. 根据需求开启过滤器并配置规则,并单击完成,完成创建。如下图所示:


更新日志规则

1. 登录 容器服务控制台,选择左侧导航栏中的日志管理 > 日志规则
2. 日志采集页面上方选择地域和注册集群,筛选需要更新日志采集规则的集群,单击右侧的编辑收集规则。如下图所示:

3. 根据需求更新相应配置,单击完成,完成更新。
注意
日志集和日志主题不可更新。

相关文档

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈