详情页标题前

腾讯云容器服务使用 CRD 配置日志采集同尘科技

详情页1

操作场景

您不仅可以 使用控制台配置日志采集,还可通过自定义资源(CustomResourceDefinitions,CRD)的方式配置日志采集。CRD 支持采集容器标准输出、容器文件和主机文件,支持多种日志采集格式。支持投递到 CLS 和 CKafka 等不同消费端。

前提条件

已在容器服务控制台的 运维功能管理 中开启日志采集,操作详情请参见 开启日志采集。

CRD 介绍

结构总览

apiVersion: cls.cloud.tencent.com/v1kind: LogConfig                 ## 默认值metadata:  name: test					## CRD资源名,在集群内唯一spec:  clsDetail:					## 投递到CLS的配置    ...  inputDetail:                  ## 采集数据源配置    ...  kafkaDetail:					## 投递到 ckafka 或者自建kafka配置    ...status:							## CRD资源状态  status: ""  code: ""						## 调用接口出错时,接口返回的错误码  reason: ""					## 出错原因

clsDetail 字段说明

注意topic 指定后不允许修改。

  clsDetail:    ## 自动创建日志主题,需要同时指定日志集和主题的name    logsetName: test                    ## CLS日志集的name,若无该name的日志集,会自动创建,若有,会在该日志集下创建日志主题    topicName: test                     ## CLS日志主题的name,若无该name的日志主题,会自动创建
# 选择已有日志集日志主题, 如果指定了日志集未指定日志主题,则会自动创建一个日志主题 logsetId: xxxxxx-xx-xx-xx-xxxxxxxx ## CLS日志集的ID,日志集需要在CLS中提前创建 topicId: xxxxxx-xx-xx-xx-xxxxxxxx ## CLS日志主题的ID,日志主题需要在CLS中提前创建,且没有被其它采集配置占用
logType: json_log ## 日志采集格式,json_log代表 json 格式,delimiter_log代表分隔符格式,minimalist_log代表单行全文格式,multiline_log代表多行全文格式,fullregex_log代表完全正则格式,multiline_fullregex_log代表多行正则格式。默认为minimalist_log logFormat: xxx ## 日志格式化方式 period: 30 ## 生命周期,单位天,可取值范围1~3600。取值为3640时代表永久保存 partitionCount: ## Integer 类型,日志主题分区个数。默认创建1个,最大支持创建10个分区。 tags: ## 标签描述列表,通过指定该参数可以同时绑定标签到相应的日志主题。最大支持9个标签键值对,同一个资源只能绑定到同一个标签键下。 - key: xxx ## 标签key value: xxx ## 标签value autoSplit: false ## boolean 类型,是否开启自动分裂,默认值为true maxSplitPartitions: storageType: hot ## 日志主题的存储类型,可选值 hot(标准存储),cold(低频存储);默认为hot。 excludePaths: ## 采集黑名单路径列表 - type: File ## 类型,选填File或Path value: /xx/xx/xx/xx.log ## type 对应的值 indexs: ## 创建 topic 时可自定义索引方式和字段 - indexName: ## 需要配置键值或者元字段索引的字段,元字段Key无需额外添加__TAG__.前缀,与上传日志时对应的字段Key一致即可,腾讯云控制台展示时将自动添加__TAG__.前缀 indexType: ## 字段类型,目前支持的类型有:long、text、double tokenizer: ## 字段的分词符,其中的每个字符代表一个分词符;仅支持英文符号及\n\t\r;long及double类型字段需为空;text类型字段推荐使用 @&?|#()='",;:[]{}/ \n\t\r\ 作为分词符; sqlFlag: ## boolean 字段是否开启分析功能 containZH: ## boolean 是否包含中文 region: ap-xxx ## topic 所在地域,用于跨地域投递 userDefineRule: xxxxxx ## 用户自定义采集规则,Json格式序列化的字符串 extractRule: {} ## 提取、过滤规则。 如果设置了ExtractRule,则必须设置LogType

inputDetail 字段说明

  inputDetail:    type: container_stdout   ## 采集日志的类型,包括container_stdout(容器标准输出)、container_file(容器文件)、host_file(主机文件)
containerStdout: ## 容器标准输出 namespace: default ## 采集容器的kubernetes命名空间。支持多个命名空间,如果有多个命名空间使用","分隔,如:default,namespace。 如果不指定,代表所有命名空间。注意:与 excludeNamespace 不能同时指定 excludeNamespace: nm1,nm2 ## 排除采集容器的kubernetes命名空间。支持多个命名空间,如果有多个命名空间使用","分隔,如:nm1,nm2。 如果不指定,代表所有命名空间。 注意:与 namespace 不能同时指定 nsLabelSelector: environment in (production),tier in (frontend) ## 根据命名空间label 筛选符合的 namespace allContainers: false ## 是否采集指定命名空间中的所有容器的标准输出。注意:allContainers=true 时不能同时指定 workloa,includeLabels 和 excludeLabels container: xxx ## 采集日志的容器名,为空时,代表采集所有符合容器的日志名。 excludeLabels: ## 采集不包含包含指定label的Pod,与workload,namespace 和 excludeNamespace 不能同时指定 key2: value2 ## 支持匹配同一个key下多个value值的pod,例填写environment = production,qa表示当key为environment,value值为production或qa时,均会被排除,注意输入多个value值时请使用逗号隔开。如果同时指定了 includeLabels,则匹配与 includeLabels 交集的pod
includeLabels: ## 采集包含指定label的Pod,与workload,namespace 和 excludeNamespace 不能同时指定 key: value1 ## 收集规则收集的日志会带上metadata,并上报到消费端。支持匹配同一个key下多个value值的pod,例填写environment = production,qa表示当key为environment,value值为production或qa时,均会被匹配,注意输入多个value值时请使用逗号隔开。 如果同时指定了 excludeLabels,则匹配与 excludeLabels 交集的pod
metadataLabels: ## 指定具体哪些pod label被当作元数据采集,如果不指定,则采集所有pod label为元数据 - label1 customLabels: ## 用户自定义metadata label: l1
workloads: - container: xxx ## 要采集的容器名,如果不指定,代表workload Pod中的所有容器 kind: deployment ## workload类型,支持deployment、daemonset、statefulset、job、cronjob name: sample-app ## workload的名字 namespace: prod ## workload的命名空间
containerFile: ## 容器内文件 namespace: default ## 采集容器的kubernetes命名空间,必须指定一个命名空间 excludeNamespace: nm1,nm2 ## 排除采集容器的kubernetes命名空间。支持多个命名空间,如果有多个命名空间使用","分隔,如:nm1,nm2。 如果不指定,代表所有命名空间。 注意:与 namespace 不能同时指定 nsLabelSelector: environment in (production),tier in (frontend) ## 根据命名空间label 筛选符合的 namespace container: xxx ## 采集日志的容器名,为 * 时,代表采集所有符合容器的日志名 logPath: /var/logs ## 日志文件夹,不支持通配符 filePattern: app_*.log ## 日志文件名,支持通配符 * 和 ? ,* 表示匹配多个任意字符,? 表示匹配单个任意字符 customLabels: ## 用户自定义metadata key: value excludeLabels: ## 采集不包含包含指定label的Pod,与workload不能同时指定 key2: value2 ## 支持匹配同一个key下多个value值的pod,例填写environment = production,qa表示当key为environment,value值为production或qa时,均会被排除,注意输入多个value值时请使用逗号隔开。如果同时指定了 includeLabels,则匹配与 includeLabels 交集的pod
includeLabels: ## 采集包含指定label的Pod,与workload不能同时指定 key: value1 ## 收集规则收集的日志会带上metadata,并上报到消费端。支持匹配同一个key下多个value值的pod,例填写environment = production,qa表示当key为environment,value值为production或qa时,均会被匹配,注意输入多个value值时请使用逗号隔开。 如果同时指定了 excludeLabels,则匹配与 excludeLabels 交集的pod metadataLabels: ## 指定具体哪些pod label被当作元数据采集,如果不指定,则采集所有pod label为元数据 - label1 ## pod label workload: container: xxx ## 要采集的容器名,如果不指定,代表workload Pod中的所有容器 name: sample-app ## workload的名字
hostFile: ## 节点文件路径 filePattern: '*.log' ## 日志文件名,支持通配符 * 和 ? ,* 表示匹配多个任意字符,? 表示匹配单个任意字符 logPath: /tmp/logs ## 日志文件夹,不支持通配符 customLabels: ## 用户自定义metadata label1: v1

extractRule 对象说明

名称 类型 必填项 描述
timeKey String 时间字段的 key 名字,time_key 和 time_format 必须成对出现。
timeFormat String 时间字段的格式,参考 C 语言的 strftime 函数对于时间的格式说明输出参数。
delimiter String 分隔符类型日志的分隔符,只有 log_type 为 delimiter_log 时有效。
logRegex String 整条日志匹配规则,只有 log_type 为 fullregex_log 时有效。
beginningRegex String 行首匹配规则,只有 log_type 为 multiline_log 或 fullregex_log 时有效。
unMatchUpload String 解析失败日志是否上传,true 表示上传,false 表示不上传。
unMatchedKey String 失败日志的 key。
backtracking String 增量采集模式下的回溯数据量,默认-1(全量采集),0 表示增量。
keys Array of String 取的每个字段的 key 名字,为空的 key 代表丢弃这个字段,只有 log_type 为 delimiter_log 时有效,json_log 的日志使用 json 本身的 key。
filterKeys Array of String 需要过滤日志的 key,与 FilterRegex 按下标进行对应。
filterRegex Array of String 需要过滤日志的 key 对应的 regex,与 FilterKeys 按下标进行对应。
isGBK String 是否为 Gbk 编码。0: 否,1: 是。注意:此字段可能返回 null,表示取不到有效值。
jsonStandard String 是否为标准 json。0: 否,1: 是。注意:此字段可能返回 null,表示取不到有效值。

kafkaDetail 字段说明

  kafkaDetail:    brokers: x.x.x.x:p    ## 必填,broker地址,一般是域名:端口,多个地址以“,”分隔    topic: test		          kafkaType: CKafka     ## kafka 类型, CKafka - ckafka,SelfBuildKafka - 自建kafka    instanceId: xxxx      ## 当 kafkaType = CKafka, 设置ckafka实例 id    logType: minimalist_log ## kafka 日志解析类型,"minimalist_log" 或 "" 单行全文,"multiline_log" 多行全文,"json" json 格式    timestampFormat: xxx   ## 时间戳的格式,默认是double    timestampKey: xxx      ## 时间戳的key值,默认是"@timestamp"  metadata:    formatType: default   ## metadata 格式。 "default" 默认格式(与 eks kafka 采集器相同),"filebeat" filebeat 格式,"fluent-bit" fluent-bit 格式    messageKey:            ## 支持指定一个Key,将日志投递到指定分区。默认不开启,日期随机投放;开启后带有同样Key的日志,将投递到相同的分区里。支持选择Pod字段作为Key,以Pod name为例,请选择Field>metadata.name      value: Field        ## 必填,topicID      valueFrom:        fieldRef:           fieldPath: metadata.name ##  当key为Field时可选 metadata.name,metadata.namespace,spec.nodeName,spec.serviceAccountName

status 字段说明

status 说明
状态为空 初始状态
Synced 采集配置处理成功
Stale 采集配置处理失败

CRD 示例

配置容器标准输出 CRD 示例

所有容器指定工作负载指定 Pod Labels指定命名空间

apiVersion: cls.cloud.tencent.com/v1kind: LogConfigmetadata:  name: "test"spec:  clsDetail:    .......    topicId: xxxxxx-xx-xx-xx-xxxxxxxx  inputDetail:    containerStdout:      allContainers: true      namespace: default,kube-public    type: container_stdout

排除命名空间

apiVersion: cls.cloud.tencent.com/v1kind: LogConfigmetadata:  name: "test"spec:  clsDetail:    ........    topicId: xxxxxx-xx-xx-xx-xxxxxxxx  inputDetail:    containerStdout:      allContainers: true      excludeNamespace: kube-system,kube-node-lease    type: container_stdout
apiVersion: cls.cloud.tencent.com/v1kind: LogConfigmetadata:  name: "test"spec:  clsDetail:    ......    topicId: xxxxxx-xx-xx-xx-xxxxxxxx  inputDetail:    containerStdout:      allContainers: false      workloads:      - container: prod        kind: deployment        name: sample-app        namespace: kube-system    type: container_stdout
apiVersion: cls.cloud.tencent.com/v1kind: LogConfigmetadata:  name: testspec:  clsDetail:    ......    topicId: xxxxxx-xx-xx-xx-xxxxxxxx  inputDetail:    containerStdout:      container: prod      excludeLabels:        key2: v2      includeLabels:        key1: v1      namespace: default,kube-system    type: container_stdout

配置容器文件路径 CRD 示例

指定工作负载指定 Pod Labels

apiVersion: cls.cloud.tencent.com/v1kind: LogConfigmetadata:  name: testspec:  clsDetail:    .......    topicId: xxxx-xx-xx-xx-xxxx  inputDetail:    containerFile:      container: prod      filePattern: '*.log'      logPath: /tmp/logs      namespace: kube-system      workload:        kind: deployment        name: sample-app    type: container_file
apiVersion: cls.cloud.tencent.com/v1kind: LogConfigmetadata:  name: testspec:  clsDetail:    .......    topicId: xxxx-xx-xx-xx-xxxx  inputDetail:    containerFile:      container: prod      filePattern: '*.log'      includeLabels:        key1: v1      excludeLabels:        key2: v2      logPath: /tmp/logs      namespace: default,kube-public    type: container_file

配置节点文件路径 CRD 示例

apiVersion: cls.cloud.tencent.com/v1kind: LogConfigmetadata:  creationTimestamp: "2022-03-13T12:48:49Z"  generation: 4  name: test  resourceVersion: "11729531"  selfLink: /apis/cls.cloud.tencent.com/v1/logconfigs/test  uid: 233f4b72-cfef-4a43-abb8-e4d033185097spec:  clsDetail:    .......    topicId: xxxx-xx-xx-xx-xxxx  inputDetail:    hostFile:      customLabels:        testmetadata: v1      filePattern: '*.log'      logPath: /var/logs    type: host_file



容器服务官网1折活动,限时活动,即将结束,速速收藏
同尘科技腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/147787.html

(0)
上一篇 2023年12月9日 下午12:45
下一篇 2023年12月9日 下午12:45
详情页2

相关推荐

  • 腾讯云对象存储COS Ranger 权限体系解决方案

    背景 Hadoop Ranger 权限体系是大数据场景下的权限解决方案。用户使用存算分离后,将数据托管在对象存储(Cloud Object Storage,COS)上。COS 使用的是腾讯云访问管理(Cloud Access Management,CAM)权限体系,无论是用户身份,权限策略等,都与本地 Hadoop Ranger 体系不同。为维持客户的使用习…

    2023年12月9日
  • 腾讯云云直播拉流转推事件通知

    拉流转推回调主要用于回调拉流转推任务的状态信息,您需要在拉流转推任务中配置回调地址,腾讯云直播后台会将类型结果回调到您设置的接收服务器中。本文主要讲解触发推断流回调事件后,腾讯云直播发送给用户的回调消息通知字段。 注意事项 1. 阅读本文之前,希望您已经了解腾讯云直播是如何配置回调功能、您是如何接收回调消息的,具体请参见 如何接收事件通知。2. 任务未到结束…

    腾讯云 2023年12月9日
  • 腾讯云对象存储媒体截图接口

    简介 本文档提供关于媒体截图接口的 API 概览和 SDK 示例代码。注意 COS 小程序 SDK 版本需要大于等于 v1.1.1。 API 操作名 操作描述 GetSnapshot 查询截图 用于查询媒体文件在某个时间的截图 查询截图 功能说明 用于查询媒体文件在某个时间的截图。注意 使用此接口前,请确保已打开官网控制台中数据处理下的媒体处理开关,否则会报…

    腾讯云 2023年12月9日
  • 腾讯云内容分发网络CDN新手指引

    基本概念 为了应对复杂的网络环境,改善互联网业务中网络层面的诸多问题,腾讯云在现有网络结构中增加一层遍布全球的高性能加速节点构成新的虚拟网络架构,使您可以按照缓存策略将您的业务内容存储至更靠近用户的边缘节点上,缩短用户与业务内容距离,以此降低访问延迟,提升可用性。为了更好的对加速服务进行区分,腾讯云根据加速类型的不同提供了不同的产品:针对静态资源的 CDN …

    2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云RDS数据库通过客户端、命令行连接RDS MySQL实例-云淘科技

    本文介绍如何设置白名单以及通过客户端、命令行连接RDS MySQL实例。 前提条件 已创建RDS MySQL实例。更多信息,请参见快速创建RDS MySQL实例。 已为实例创建数据库和账号。更多信息,请参见创建数据库和账号。 已为实例设置IP白名单。更多信息,请参见设置IP白名单。 建议 如果您满足内网访问条件,建议使用内网连接地址连接实例,延迟更低,稳定性…

    阿里云数据库 2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。