TKE集群日志解决方案之日志采集

2020-12-16 12:51:43 浏览数 (1)

引言

当前技术领域容器盛行,已然是一个云原生的时代, 在技术领域都或多或少跟云计算、容器、Kubernetes、云原生应用有着不同的渊源。云原生的技术变更带来了革命性的变化, 节省了成本,使得系统能够快速应对业务的快速迭代发布, 从而推动业务的快速发展。但同时导致了公司对于上云后对于应用的监控,管理发生了很大的变化.

在云原生代我们如何去应对与传统的方式差距比较监控和管理方式,是不是可以有一套方法论可以遵循解决这类问题呢?Google的SRE体系里面提出过可观测行,那可观测性是什么呢,可观测性一套理念或者说是方法论. 这套方法论没有具体的要求. 大体的定义: "监控告诉我们系统的那部分是工作的,可观测性告诉我们哪里为什么不工作了",可观测性似乎更有助于我们诊断系统健康与否。这里就不详细展讨论,后面有时间单独讨论这个问题.

那监控和可观测性的关系,直接上图:

可观测性和监控的关系.png可观测性和监控的关系.png

可观测性的三大支柱:

  • Log (日志)
  • Metric (指标)
  • Tracing (应用追踪)

今天我们讲在TKE中如何将业务调用链上的日志采集,在下一篇文章中将基于日志的报警。

TKE日志采集的场景及架构

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

架构图如下:

tke-log.pngtke-log.png

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

T

KE 日志采集支持以下采集方式:

  • 采集容器标准输出日志
  • 采集容器内的文件日志
  • 采集主机内的文件日志

业务应用场景

常规业务场景:

公网域名-->入口Nginx(ingress) --> 业务应用容器

我们使用nginx的容器标准输出给大家演示标准输出的采集方式

通过业务应用容器内的文件日志演示容器内的文件日志采集方式

untitled.pnguntitled.png

操作步骤

环境:

  • TKE(容器服务) 集群
  • 业务应用容器
  • CLS 日志系统

为什么采用CLS而不是ELK, 对于中小企业自建一套ELK维护成本比较高,对技术人员的要求也高,

而且扩容不是很便利, CLS具有一下优势:

  • 功能丰富:
    • 提供采集、存储、检索、转存投递等功能一站式日志服务
    • 采集客户端 LogListener 提供单行/多行全文、分隔符、JSON、正则等日志结构化解析方式
    • 提供多种数据接入方式,用户可根据业务情况选择适合的接入方式
    • 提供丰富的检索语法,方便用户进行关键词查询、模糊查询、范围查询等日志查询操作
  • 稳定可靠
    • 日志服务采用高可扩展性的分布式存储架构,支持横向水平扩容,服务弹性伸缩,轻松存储管理海量日志数据
    • 日志服务后端存储采用多副本机制管理存储日志数据,为数据安全提供可靠性保障
  • 简单高效
    • 采集端 LogListener 提供界面式的配置方式,配置简单直观,使用 LogListener 可快速接入日志服务
    • 数据写入 CLS 即可被消费,亿级数据查询支持秒级返回结果
    • 服务按实际用量收费,无需单独搭建和运维日志系统,避免了资源闲置浪费问题
  • 生态扩展
    • 部分云产品日志已接入 CLS
    • 日志数据投递 COS,满足对日志数据长时间归档存储的需求
    • 日志数据投递 Ckafka,满足对日志数据实时消费的需求,便于进一步处理分析

具体的操作流程我们通过短视频来给大家演示

视频内容

常见问题

全文索引和键值索引有什么区别?
  • 全文索引:将整条日志按分词符拆分成多个分词,然后基于分词进行关键词查询。
  • 键值索引:将整条日志按格式拆分成多个键值对(key-value),然后基于键值对进行字段查询
日志集和日志主题的区别是什么?

日志服务提供两层概念逻辑:日志集和日志主题,一个日志集包含多个日志主题,如同一个项目包含多个应用服务。一般而言,每个服务的日志格式都不相同,因此日志主题作为采集、检索等配置管理的最小单元。

总结

这里给大家简单分享了下TKE中采集应用日志的具体操作流程, 在这里给大家演示的日志系统是使用的CLS, CLS功能非常强大,简单易用。当详细的日志使用文档可以参考CLS的官方文档或者在本专栏中给我们留言。

欢迎大家关注本栏目,我们专注于Kubernetes生态,持续给大家分享。

0 人点赞