云原生可观察性之日志管理

本文介绍了云原生场景下如何进行日志管理,特别是使用FluentBit时如何通过Controller实现主进程的控制,以及ConfigMap Reload Sidecar Container如何监控配置变化,动态触发FluentBit配置的重新加载,以实现不停止服务的情况下更新配置。
摘要由CSDN通过智能技术生成

640?wx_fmt=jpeg

日志通常含有非常有价值的信息,日志管理是云原生可观察性的重要组成部分。不同于物理机或虚拟机,在容器与 Kubernetes 环境中,日志有标准的输出方式(stdout),这使得进行平台级统一的日志收集、分析与管理水到渠成,并体现出日志数据独特的价值。本文将介绍云原生领域比较主流的日志管理方案 EFK、 KubeSphere 团队开发的 FluentBit Operator 以及 KubeSphere 在多租户日志管理方面的实践。此外还将介绍受 Prometheus 启发专为 Kubernetes 日志管理开发,具有低成本可扩展等特性的开源软件 Loki。
近年来随着以 Kubernetes 为代表的云原生技术的崛起,可观察性(Observability)作为一种新的理念逐渐走入人们的视野。云原生基金会(CNCF)在其 Landscape 里已经将可观察性单独列为一个分类,狭义上主要包含监控、日志和追踪等,广义上还包括告警、事件、审计等。在此领域陆续涌现出了众多新兴开源软件如 Prometheus、Grafana、Fluentd、Loki、Jaeger 等。

640?wx_fmt=png

https://landscape.cncf.io/

日志作为可观察性的重要组成部分,在开发、运维、测试、审计等过程中起着非常重要的作用。著名的应用开发十二要素中提到:“日志使得应用程序运行的动作变得透明,应用本身从不考虑存储自己的输出流。不应该试图去写或者管理日志文件。每一个运行的进程都会直接输出到标准输出(stdout)。每个进程的输出流由运行环境截获,并将其他输出流整理在一起,然后一并发送给一个或多个最终的处理程序,用于查看或是长期存档。”

在物理机或者虚拟机的环境中,日志通常是输出到文件,并由用户自己管理,这使得日志的集中管理和分析变得困难和不便。而 Kubernetes 、Docker 等容器技术直接将日志输出到 stdout,这使得日志的集中管理和分析变得更为便捷和水到渠成。

Kubernetes 官网文档给出的通用日志架构如下图所示,包含日志 Agent,后端服务和前端控制台等三个部分。无论是成熟的日志解决方案如 ELK/EFK , 还是云原生领域 2018 年开源的 Loki 都具有相似的架构,下面将分别介绍 ELK/EFK、Loki 以及 KubeSphere 在这方面的贡献。

640?wx_fmt=png

https://kubernetes.io/docs/concepts/cluster-administration/logging/

新旧势力的联姻:从 ELK 到 EFK,从 Fluentd 到 Fluent Bit

640?wx_fmt=png

ELK 是 Elasticsearch、Logstash、Kibana 的简称,是目前比较主流的开源日志解决方案。而 2019 年 4 月从 CNCF 毕业用 C 和 Ruby 编写的 Fluentd 作为通用日志采集器,以其高效、灵活、易用的特性逐渐取代了用 Java 编写的 Logstash 成为新的日志解决方案 EFK 中的重要一员,并在云原生领域得到广泛认可与应用。Google 的云端日志服务 Stackdriver 也用修改后的 Fluentd 作为 Agent 。然而 Fluentd 开发团队并没有停滞不前,推出了更为轻量级的完全用 C 编写的产品 Flu
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值