日志模块架构

整体架构描述
日志系统由以下核心功能模块组成:
-
日志采集
- 基于开源组件 filebeat 提供
- 日志采集:支持标准输出日志、文件日志、Kubernetes 事件和审计的采集。
-
日志存储
- 基于开源组件 ClickHouse 和 Elasticsearch 提供两种不同的日志存储方案。
- 日志存储:支持日志文件的长期存储。
- 日志存储时间管理:支持在项目级别管理日志存储时长。
-
日志可视化
- 提供便捷且可靠的日志查询、日志导出和日志分析能力。
日志采集
组件安装方式
nevermore 以 daemonset 形式安装在每个集群的 cpaas-system 命名空间中。该组件由 4 个容器组成:
数据采集流程
nevermore 采集审计/事件/日志信息后,将数据发送至日志存储集群,经过 Razor 认证后,最终存储到 Elasticsearch 或 ClickHouse 中。
日志消费与存储
Razor
Razor 负责认证以及接收和转发日志消息。
- Razor 接收到 nevermore 从各工作负载集群发送的请求后,首先使用请求中的 Token 进行认证,认证失败则拒绝请求。
- 若安装的日志存储组件为 Elasticsearch,则将对应日志写入 Kafka 集群。
- 若安装的日志存储组件为 ClickHouse,则将对应日志传递给 Vector,最终写入 ClickHouse。
Lanaya
Lanaya 负责 Elasticsearch 日志存储链路中的日志数据消费和转发。
- Lanaya 订阅 Kafka 中的主题,接收订阅消息后进行解压。
- 解压后对消息进行预处理,添加必要字段、转换字段及拆分数据。
- 最终根据消息的时间和类型,将消息存储到 Elasticsearch 的对应索引中。
Vector
Vector 负责 ClickHouse 日志存储链路中的日志数据处理和转发,最终将日志存储到 ClickHouse 的对应表中。
日志可视化
- 用户可通过产品 UI 界面访问审计/事件/日志查询 URL 进行展示:
- 日志查询 /platform/logging.alauda.io/v1
- 事件查询 /platform/events.alauda.io/v1
- 审计查询 /platform/audits.alauda.io/v1
- 请求由高级 API 组件 Courier 处理,Courier 从日志存储集群 Elasticsearch 或 ClickHouse 查询日志数据并返回页面。