Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >《TKE学习》TKE服务中的日志采集 (九)

《TKE学习》TKE服务中的日志采集 (九)

原创
作者头像
baron
发布于 2019-11-27 08:45:52
发布于 2019-11-27 08:45:52
2.1K0
举报

使用场景

日志采集功能是容器服务为用户提供的集群内日志采集工具,可以将集群内服务或集群节点特定路径文件的日志发送至 Kafka、Elasticsearch或者腾讯云日志服务(CLS)。日志采集功能适用于需要对 Kubernetes 集群内服务日志进行存储和分析的用户。

日志采集功能需要为每个集群手动开启。日志采集功能开启后,日志采集 Agent 会在集群内以 DaemonSet 的形式运行,并根据用户通过日志采集规则配置的采集源和消费端,从采集源进行日志采集,将日志内容发送到消费端。您可根据以下操作开启日志采集功能:

  • 采集容器标准输出日志
  • 采集容器内文件日志
  • 采集主机内文件日志
  • 配置日志消费端

前提条件

  • 请在开启前保证集群节点上有足够资源。开启日志采集功能会占用您集群的部分资源,默认会占用集群每个节点约0.3核 CPU,250MB内存。
    • 占用 CPU 资源:默认0.3核,日志量过大时可根据情况自行调大,建议最大设置为 request 1核,limit 2核。
    • 占用内存资源:默认250MB,日志量过大时可根据情况自行调大,建议最大设置为 request 1GB,limit 1.5GB。
    • 日志长度限制:单条512K,如超过会截断。
  • 若使用日志采集功能,请确认 Kubernetes 集群内节点能够访问日志消费端。且以下日志采集功能仅支持 Kubernetes 1.10 以上版本集群。

概念

  • 日志采集 Agent:TKE 用于采集日志信息的 Agent,基于 Fluentd 开发,在集群内以 DaemonSet 的方式运行。
  • 日志采集规则:用户可以使用日志采集规则指定日志的采集源以及将采集的日志发送至指定消费端。
    • 日志采集 Agent 会监测日志采集规则的变化,变化的规则会在最多10s内生效。
    • 多条日志采集规则不会创建多个 DaemonSet,但过多的日志采集规则会使得日志采集 Agent 占用的资源增加。
  • 日志源:包含指定容器日志以及主机路径日志。
    • 在需要采集集群内服务打印到标准输出的日志时,用户将日志的采集源为指定容器日志、所有 Namespace 服务的日志或若干个指定 Namespace 内的服务日志。
    • 在需要采集集群内节点特定路径的日志时,用户可以设定日志的采集源为主机路径日志,例如当需要采集所有路径形式为 /var/lib/docker/containers//.json-log 的日志时,可以指定日志采集路径为 /var/lib/docker/containers/*/*.json-log
  • 消费端:日志采集 Agent 在采集指定采集源的日志后,会将采集到的日志发送至用户指定的消费端。
    • 日志采集服务支持用户自建的 Elasticsearch 、Kafka 、腾讯云的 Ckafka 服务或腾讯云日志服务(CLS)作为日志的消费端。
    • 日志采集 Agent 会将采集到的日志以 JSON 的形式发送至用户指定的消费端。

TKE实践

采集容器标准输出日志

日志采集功能支持采集 Kubernetes 集群内指定容器的标准输出日志,用户可以根据自己的需求,灵活的配置采集规则。

采集到的日志信息将会以 JSON 格式输出到用户指定的消费端,并会附加相关的 Kubernetes metadata,包括容器所属 pod 的 label 和 annotation 等信息。

配置方法

1、登录 容器服务控制台,单击左侧导航栏【日志采集】。

2、在日志采集页面上方选择地域与集群后,单击【新建】。如下图所示:

Snipaste_2019-11-26_15-38-24.png
Snipaste_2019-11-26_15-38-24.png

3、在新建日志收集规则页面,选择【容器标准输出】采集类型,并配置日志源。如下图所示:

Snipaste_2019-11-26_15-41-58.png
Snipaste_2019-11-26_15-41-58.png

选择容器标准输出采集类型时,会默认为每条日志添加以下 metadata,其中 log 为原始日志信息。且该类型日志源支持一次选择多个 Namespace 的工作负载。

字段名

含义

docker.container_id

日志所属的 container ID

kubernetes.annotations

日志所属 pod 的 annotations

kubernetes.container_name

日志所属的 container name

kubernetes.host

日志所属 pod 所在的机器 IP

kubernetes.labels

日志所属 pod 的 labels

kubernetes.namespace_name

日志所属 pod 的 namespace

kubernetes.pod_id

日志所属 pod 的 ID

kubernetes.pod_name

日志所属 pod 的名字

log

原始日志信息

4、配置日志消费端,推荐以日志服务CLS 为消费端。如下图所示:

Snipaste_2019-11-26_15-43-15.png
Snipaste_2019-11-26_15-43-15.png

5、单击【完成】,完成创建。

采集容器内文件日志

日志采集功能也支持采集集群内指定 pod 内文件的日志。

采集到的日志信息将会以 JSON 格式输出到用户指定的消费端,并会附加相关的 Kubernetes metadata,包括容器所属 pod 的 label 和 annotation 等信息。

NT:

目前仅支持采集存储在 volume 的日志文件,即需要在工作负载创建时挂载 emptyDir、hostpath 等 volume,并将日志文件存到指定 volume。

配置方法
  1. 登录 容器服务控制台,单击左侧导航栏【日志采集】。
  2. 在日志采集页面上方选择地域与集群后,单击【新建】。
  3. 指定【容器文件路径】采集类型,并配置日志源。如下图所示:

说明:

用户可以通过指定日志文件的路径来采集 pod 上相应路径的日志文件,路径支持文件路径和通配规则,如 /var/log/nginx.log/var/lib/docker/containers/*/*.log

Snipaste_2019-11-26_16-06-21.png
Snipaste_2019-11-26_16-06-21.png

选择容器文件路径采集类型时,会默认为每条日志添加以下 metadata,其中 message 为原始日志信息。且该类型日志源不支持选择多个 Namespace 的工作负载。

字段名

含义

docker.container_id

日志所属的 container ID

kubernetes.annotations

日志所属 pod 的 annotations

kubernetes.container_name

日志所属的 container name

kubernetes.host

日志所属 pod 所在的机器 IP

kubernetes.labels

日志所属 pod 的 labels

kubernetes.namespace_name

日志所属 pod 的 namespace

kubernetes.pod_id

日志所属 pod 的 ID

kubernetes.pod_name

日志所属 pod 的名字

file

源日志文件

message

原始日志信息

  1. 配置日志消费端,推荐以日志服务CLS 为消费端。如上图所示:
  2. 单击【完成】,完成创建。

采集主机内文件日志

日志采集功能支持采集集群内所有节点的指定主机路径的日志。用户可以根据自己的需求,灵活的配置所需的路径,日志采集 Agent 会采集集群内所有节点上满足指定路径规则的文件日志。

采集到的日志信息将会以 JSON 格式输出到用户指定的输出端,并会附加用户指定的 metadata,包括日志来源文件的路径和用户自定义的 metadata。

配置方法
  1. 登录容器服务控制台,单击左侧导航栏【日志采集】。
  2. 在日志采集页面上方选择地域与集群后,单击【新建】。
  3. 在新建日志采集规则页面,指定【节点文件路径】采集类型。如下图所示:

说明:

用户可以通过指定日志文件的路径来采集集群内节点上相应路径的日志文件,路径支持文件路径和通配规则,如 /var/log/nginx.log/var/lib/docker/containers/*/*.log

Snipaste_2019-11-26_16-17-33.png
Snipaste_2019-11-26_16-17-33.png

用户可根据实际需求进行添加自定义的 “metadata” ,将采集到的日志信息附加指定 Key-Value 形式的 “metadata”,作为日志信息的 metadata 标记。

日志 metadata 含义如下表:

字段名

含义

path

日志的来源文件

message

日志信息

自定义 key

自定义 value

  1. 配置日志消费端,推荐以日志服务CLS 为消费端。如上图所示:
  2. 单击【完成】,完成创建。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
通过DaemonSet-CRD方式采集TKE日志
在TKE中LogListener是以DaemonSet模式运行,可通过CRD方式创建采集配置采集TKE集群日志。本文介绍如何通过CRD方式创建采集配置。
tinkerli
2021/04/07
1.2K1
通过DaemonSet-CRD方式采集TKE日志
【最佳实践&原理解析】K8S日志一键采集,快速分析
随着云计算技术的发展,越来越多的公司开始向业务更敏捷、成本更低、可伸缩、更灵活的云原生架构转变。而在云原生技术栈中,容器已经成为应用分发和交付的标准技术,将应用与底层运行环境进行解耦;其中 Kubernetes 已经成为容器编排的事实标准,被广泛用于自动部署、扩展和管理容器化应用。
日志服务CLS小助手
2022/08/02
2.1K5
TKE容器服务结合日志服务进行使用详解
日志采集功能是容器服务为用户提供的集群内日志采集工具,可以将集群内服务或集群节点特定路径文件的日志发送至 Kafka、Elasticsearch 或者 腾讯云日志服务(CLS)。日志采集功能适用于需要对 Kubernetes 集群内服务日志进行存储和分析的用户。
pengsiryan
2019/12/21
1.1K0
TKE集群日志解决方案之日志采集
当前技术领域容器盛行,已然是一个云原生的时代, 在技术领域都或多或少跟云计算、容器、Kubernetes、云原生应用有着不同的渊源。云原生的技术变更带来了革命性的变化, 节省了成本,使得系统能够快速应对业务的快速迭代发布, 从而推动业务的快速发展。但同时导致了公司对于上云后对于应用的监控,管理发生了很大的变化.
朱瑞卿
2020/08/23
2.1K2
TKE集群日志解决方案之日志采集
日志源解析|K8s 集群部署 CLS 日志服务原理及场景实现
kahing,腾讯云CLS产品经理,负责CLS云原生日志的云产品接入工作。 willyi,腾讯云高级开发工程师,负责CLS云原生日志服务云原生生态建设,致力于大规模云原生设施的落地和实践工作。 简介 日志服务 (Cloud Log Service, CLS)支持采集自建K8s集群上的日志,在进行日志采集前,需要在K8s自建集群上通过CRD定义日志采集配置(LogConfig),并部署安装Log-Provisoner,Log-Agent,以及LogListener。针对使用腾讯云容器服务(Tencent
腾讯云原生
2021/10/25
1.1K0
k8s 日志采集最佳实践
通常一个线上问题的定位流程是: 通过 Metric 发现问题, 根据 Trace 定位到问题模块,根据模块具体的日志定位问题原因。在日志中包括了错误、关键变量、代码运行路径等信息,这些是问题排查的核心,因此日志永远是线上问题排查的必经路径;
iginkgo18
2021/11/09
2.6K0
kubernetes中日志采集
在Kubernetes中,每个容器都有自己的标准输出和标准错误输出,我们可以使用容器运行时提供的工具来采集这些输出,并将其重定向到日志文件中。例如,我们可以使用Docker提供的“docker logs”命令来查看容器的日志输出:
堕落飞鸟
2023/03/29
1K0
网易基于Filebeat的日志采集服务设计与实践
云原生技术大潮已经来临,技术变革迫在眉睫。 在这股技术潮流之中,网易推出了 轻舟微服务平台,集成了微服务、Service Mesh、容器云、DevOps等组件,已经广泛应用于公司内部,同时也支撑了很多外部客户的云原生化改造和迁移。
Spark学习技巧
2021/02/12
1.7K2
网易基于Filebeat的日志采集服务设计与实践
TKE操作笔记04
良好的监控环境为腾讯云容器服务高可靠性、高可用性和高性能提供重要保证。您可以方便为不同资源收集不同维度的监控数据,能方便掌握资源的使用状况,轻松定位故障。 腾讯云容器服务提供集群、节点、工作负载、Pod、Container 5个层面的监控数据收集和展示功能。 收集监控数据有助于您建立容器集群性能的正常标准。通过在不同时间、不同负载条件下测量容集群的性能并收集历史监控数据,您可以较为清楚的了解容器集群和服务运行时的正常性能,并能快速根据当前监控数据判断服务运行时是否处于异常状态,及时找出解决问题的方法。例如,您可以监控服务的 CPU 利用率、内存使用率和磁盘 I/O
聂伟星
2020/06/05
7960
Logging Operator - 优雅的云原生日志管理方案 (三)
Logging Operator是BanzaiCloud下开源的一个云原生场景下的日志采集方案。它在 2020 年 3 月的时候经过重构后的 v3 版本,底层凭借高效的 fluentbit 和插件丰富的 flunetd,Logging Operator几乎已经完美的适配了 kubernetes 模式下的日志采集场景,未来可期。去年偶然间发现Rancher 在 2.5 版本之后也采用了 Logging Operator 作为统一的日志解决方案,足以说明它正在被一些以 Kubernetes 为核心的管理平台接受,并集成至内部(也包括小白的 KubeGems)。
云原生小白
2022/01/11
1K0
腾讯云TKE-日志案例: 基于fluentbit、elasticsearch、kibana日志解决方案
本文介绍利用在腾讯云TKE应用市场中的三款软件 fluentbit,elasticsearch和kibana搭建一套适用于kubernetes环境的云原生一站式日志解决方案。
朱瑞卿
2020/11/02
2.1K0
腾讯云TKE-日志案例: 基于fluentbit、elasticsearch、kibana日志解决方案
k8s01# K8s日志采集与服务质量QoS
应用容器化后的日志采集该选择何种方式?该如何权衡?不同的服务质量QoS对Node的稳定性影响是怎么样的,本文就捋一捋这个。主要内容有:
瓜农老梁
2022/12/03
5250
k8s01# K8s日志采集与服务质量QoS
kube-apiserver审计日志记录和采集
Kubernetes 审计功能提供了与安全相关的按时间顺序排列的记录集,记录单个用户、管理员或系统其他组件影响系统的活动顺序。它能帮助集群管理员处理以下问题:
我的小碗汤
2019/01/23
3.5K0
kube-apiserver审计日志记录和采集
使用log-Pilot做日志收集
log-Pilot是一个智能容器日志采集工具,它不仅能够高效便捷地将容器日志采集输出到多种存储日志后端,同时还能够动态地发现和采集容器内部的日志文件,更多咨询可以移步这里。
极客运维圈
2020/07/01
2.7K0
使用fluent bit+ClickHouse 实现K8s日志采集
Fluent bit是一个用C写成的插件式、轻量级、多平台开源日志收集工具。它允许从不同的源收集数据并发送到多个目的地。完全兼容docker和kubernetes生态环境。
灵雀云
2021/12/28
2.8K0
使用fluent bit+ClickHouse 实现K8s日志采集
云原生系统日志采集详解
谈到日志收集,估计大家第一个想到的就是ELK这个比较成熟的方案,如果是特别针对云原生上的,那么将采集器稍微变一下为
大发明家
2021/12/17
1.2K0
使用filebeat采集TKE容器日志
当业务使用腾讯云容器服务TKE进行部署时,可以通过filebeat来采集TKE中各个pod的日志,写入到下游的Elasticsearch集群中,然后在kibana上进行日志的查询与分析。本文介绍如何使用filebeat daemonset的方式采集容器中的日志。
bellen
2021/07/21
2.9K1
使用filebeat采集TKE容器日志
Kubernetes集群监控-使用ELK实现日志监控和分析
日志对于调试问题和监视集群情况也是非常有用的。而且大部分的应用都会有日志记录,对于传统的应用大部分都会写入到本地的日志文件之中。对于容器化应用程序来说则更简单,只需要将日志信息写入到 stdout 和 stderr 即可,容器默认情况下就会把这些日志输出到宿主机上的一个 JSON 文件之中,同样也可以通过 docker logs 或者 kubectl logs 来查看到对应的日志信息。
王先森sec
2023/11/20
1K0
Kubernetes集群监控-使用ELK实现日志监控和分析
Kubernetes中部署ELK Stack日志收集平台
ELK是Elasticsearch、Logstash、Kibana三大开源框架首字母大写简称。市面上也被称为Elastic Stack。其中Elasticsearch是一个基于Lucene、分布式、通过Restful方式进行交互的近实时搜索平台框架。像类似百度、谷歌这种大数据全文搜索引擎的场景都可以使用Elasticsearch作为底层支持框架,可见Elasticsearch提供的搜索能力确实强大,市面上很多时候我们简称Elasticsearch为es。Logstash是ELK的中央数据流引擎,用于从不同目标(文件/数据存储/MQ)收集的不同格式数据,经过过滤后支持输出到不同目的地(文件/MQ/redis/elasticsearch/kafka等)。Kibana可以将elasticsearch的数据通过友好的页面展示出来,提供实时分析的功能。
没有故事的陈师傅
2021/07/21
1.8K6
【玩转腾讯云】记一次容器服务日志处理过程
在目前小程序为主的大背景下,有客户大部分业务在腾讯云,使用的大部分为容器服务,在大规模的使用容器下,需要对容器内业务的日志采集及分析,在腾讯云对应容器服务的日志提供了两种消费方式:Kafka、日志服务CLS。
KaliArch
2021/04/23
8180
【玩转腾讯云】记一次容器服务日志处理过程
相关推荐
通过DaemonSet-CRD方式采集TKE日志
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档