核心概念
目录
Open Source ComponentsFilebeatElasticsearchClickHouseKafkaCore Functionality ConceptsLog Collection PipelineIndexShards and ReplicasColumnar StorageStorage PolicyCold and Hot SeparateKey Technical TermsIngest PipelineConsumer GroupTTL (Time To Live)Replication FactorData Flow ModelOpen Source Components
Filebeat
定位:轻量级日志采集器
描述:安装在容器节点上的开源日志采集组件,负责对指定路径的日志文件进行实时监控。通过输入模块采集日志数据,进行处理后通过输出模块转发日志到 Kafka,或直接发送到存储组件。支持多行日志聚合、字段过滤等预处理能力。
Elasticsearch
定位:分布式搜索与分析引擎
描述:基于 Lucene 的全文搜索引擎,以 JSON 文档格式存储日志数据,提供近实时的搜索能力。支持动态映射实现字段类型自动识别,通过倒排索引实现快速关键词检索,适用于日志搜索和监控告警。
ClickHouse
定位:列式分析型数据库
描述:面向 OLAP 场景的高性能列式存储数据库,采用 MergeTree 引擎实现 PB 级日志数据存储。支持高速聚合查询、时间分区、数据 TTL 策略及基于 S3 的存储规划,适合日志分析和批量计算场景下的统计报表。
Kafka
定位:分布式消息队列
描述:作为日志流水线系统的消息中间件,提供高吞吐的日志缓冲能力。当 Elasticsearch 集群处理瓶颈时,通过 Topic 接收 Filebeat 发送的日志数据,实现流量削峰和异步消费,保障日志采集端的稳定性。
Core Functionality Concepts
Log Collection Pipeline
描述:从日志数据产生到存储的完整链路,包含四个阶段:采集 -> 传输 -> 缓冲 -> 存储。支持两种流水线模式:
- 直写模式:Filebeat → Elasticsearch/ClickHouse
- 缓冲模式:Filebeat → Kafka → Elasticsearch
Index
描述:Elasticsearch 中的逻辑数据分区单元,类似数据库中的表结构。支持基于时间的滚动索引创建(如 logstash-2023.10.01),并通过索引生命周期管理(ILM)实现自动的冷热分层存储。
Shards and Replicas
描述:
- Shard:Elasticsearch 对索引进行水平拆分后形成的物理存储单元,支持分布式扩展。
- Replica:每个 Shard 的副本,提供数据高可用和查询负载均衡。
Columnar Storage
描述:ClickHouse 的核心存储机制,按列压缩存储数据,显著降低 I/O 消耗。支持以下特性:
- 向量化查询执行引擎
- 数据分区与分片
- 物化视图实现预聚合
Storage Policy
描述:ClickHouse 的存储放置模型,控制元数据和日志表数据的存储位置。在 ACP Logging 中,ClickHouse 支持:
- 默认:将 ClickHouse 数据存储在本地主机路径或 StorageClass 中。
- 存储与计算分离:ClickHouse 元数据存储在本地或 StorageClass,日志表数据存储在远程 S3 存储中。
Cold and Hot Separate
描述:ClickHouse 的分层存储模型。活跃数据保留在当前 ClickHouse 存储中,冷数据在达到配置的保留阈值后转移至 S3。该模型适用于需要长期保留但不希望所有数据均存于活跃存储的场景。
Key Technical Terms
Ingest Pipeline
描述:Elasticsearch 中的数据预处理流水线,支持字段重命名、Grok 解析、条件逻辑等 ETL 操作,数据写入前进行处理。
Consumer Group
描述:Kafka 的并行消费机制,同一消费者组内的多个实例可并行消费不同分区的消息,保证消息有序处理。
TTL (Time To Live)
描述:数据生命周期策略,支持两种实现方式:
- Elasticsearch:通过 ILM 策略自动删除过期索引。
- ClickHouse:使用 TTL 表达式删除过期数据或将符合条件的数据迁移至冷存储。
Replication Factor
描述:Kafka Topic 级别的数据冗余配置,定义消息在不同 Broker 上的副本数量,提高数据可靠性。