Log Module Architecture

Overall Architecture Description

日志系统由以下核心功能模块组成:

  1. Log Collection

    • 基于开源组件 filebeat 提供
    • 日志采集:支持采集标准输出日志、文件日志、Kubernetes 事件和审计。
  2. Log Storage

    • 基于开源组件 Clickhouse 和 ElasticSearch 提供两种不同的日志存储方案。
    • 日志存储:支持日志文件的长期存储。
    • 日志存储时间管理:支持在项目层面管理日志存储时长。
  3. Log Visualization

    • 提供便捷可靠的日志查询、日志导出和日志分析能力。

Log Collection

Component Installation Method

nevermore 作为 daemonset 安装在每个集群的 cpaas-system 命名空间中。该组件由 4 个容器组成:

NameFunction
audit采集审计数据
event采集事件数据
log采集日志数据(包括标准输出和文件日志)
node-problem-detector采集节点异常信息

Data Collection Process

nevermore 采集审计/事件/日志信息后,将数据发送到日志存储集群,经过 Razor 认证后最终存储到 ElasticSearch 或 ClickHouse 中。

Log Consumption and Storage

Razor

Razor 负责认证以及接收和转发日志消息。

  • Razor 接收到 nevermore 从各个工作负载集群发送的请求后,首先使用请求中的 Token 进行认证,认证失败则拒绝请求。
  • 若安装的日志存储组件为 ElasticSearch,则将对应日志写入 Kafka 集群。
  • 若安装的日志存储组件为 Clickhouse,则将对应日志传递给 Vector,最终写入 Clickhouse。

Lanaya

Lanaya 负责 ElasticSearch 日志存储链路中的日志数据消费和转发。

  • Lanaya 订阅 Kafka 中的主题,接收到订阅消息后进行解压。
  • 解压后对消息进行预处理,添加必要字段、字段转换和数据拆分。
  • 最终根据消息的时间和类型,将消息存储到 ElasticSearch 对应的索引中。

Vector

Vector 负责 Clickhouse 日志存储链路中的日志数据处理和转发,最终将日志存储到 Clickhouse 对应的表中。

Log Visualization

  1. 用户可以从产品 UI 界面查询审计/事件/日志查询 URL 进行展示:
  • 日志查询 /platform/logging.alauda.io/v1
  • 事件查询 /platform/events.alauda.io/v1
  • 审计查询 /platform/audits.alauda.io/v1
  1. 请求由高级 API 组件 Courier 处理,Courier 从日志存储集群 ElasticSearch 或 Clickhouse 查询日志数据并返回给页面。