查看其它 2 个回答ccww552010的回答

ccww552010ccww552010课题专家组软件开发工程师某科技企业

 一、日志搜集方案

Kubernetes 本身,实际上是不会为你做容器日志收集工作的,因此在部署集群的时候,提前对具体的日志方案进行规划。而 Kubernetes 项目本身,主要为你推荐了三种日志方案。

 1.1 Node上部署agent


1.  通过在每个节点上使用 节点级的日志记录代理 来实现集群级日志记录。 日志记录代理是一种用于暴露日志或将日志推送到后端的专用工具。 通常,日志记录代理程序是一个容器,它可以访问包含该节点上所有应用程序容器的日志文件的目录。
2.  由于日志记录代理必须在每个节点上运行,推荐以 DaemonSet 的形式运行该代理.
3. 节点级日志在每个节点上仅创建一个代理,不需要对节点上的应用做修改。容器向标准输出和标准错误输出写出数据,但在格式上并不统一。 节点级代理收集这些日志并将其进行转发以完成汇总。

 1.2 sidecar运行日志代理


1. 边车容器将应用程序日志传送到自己的标准输出。
2. 边车容器运行一个日志代理,配置该日志代理以便从应用容器收集日志。

 1.3 日志代理功能的边车容器


如果节点级日志记录代理程序对于你的场景来说不够灵活, 你可以创建一个带有单独日志记录代理的边车容器,将代理程序专门配置为与你的应用程序一起运行。

 二、日志存储方案

 2.1 kafka + elasticsearch存储


工作流程:
1. filebeat采用daemonset部署方式,从每个node节点上搜集容器日志,并发送kakfa。
2. logstash从kafka消费数据,基于规则,过滤日志,并存储只es的索引中。
3. kibana从es读取数据并展示。

 2.2 时序数据库存储


工作流程:
1. Promail探针采用 daemonset部署方式,从每个node节点上搜集容器日志。给采集日志 匹配、过滤、打Labels等,推送至loki server。
2. loki日志服务,将日志存储至时序数据库中。
3. Grafana中原生支持Loki作为数据源进行查询。

互联网服务 · 2023-01-02
浏览423

回答者

ccww552010
软件开发工程师某科技企业
擅长领域: 云计算容器容器云

ccww552010 最近回答过的问题

回答状态

  • 发布时间:2023-01-02
  • 关注会员:4 人
  • 回答浏览:423
  • X社区推广