Основные понятия
Содержание
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
Позиционирование: Легковесный сборщик логов
Описание: Компонент для сбора логов с открытым исходным кодом, устанавливаемый на контейнерных узлах, отвечающий за мониторинг лог-файлов в реальном времени по заданным путям. Он собирает данные логов через input-модули, обрабатывает их и пересылает логи в Kafka или напрямую доставляет их в компоненты хранения через output-модули. Поддерживает такие возможности, как агрегация многострочных логов и фильтрация полей для предварительной обработки.
Elasticsearch
Позиционирование: Распределённый движок поиска и аналитики
Описание: Движок полнотекстового поиска на базе Lucene, хранящий лог-данные в формате JSON-документов и обеспечивающий поиск с близкой к реальному времени скоростью. Поддерживает динамическое отображение для автоматического распознавания типов полей и достигает быстрой поисковой выдачи по ключевым словам с помощью обратного индексирования, что подходит для поиска по логам и мониторинговых оповещений.
ClickHouse
Позиционирование: Колонко-ориентированная аналитическая база данных
Описание: Высокопроизводительная колонко-ориентированная СУБД, предназначенная для OLAP-сценариев, реализующая хранение логов на уровне петабайт с использованием движка MergeTree. Поддерживает высокоскоростные агрегирующие запросы, разбиение по времени, стратегии TTL для данных и планирование хранения с использованием S3, что делает её подходящей для анализа логов и статистической отчётности в пакетных вычислениях.
Kafka
Позиционирование: Распределённая очередь сообщений
Описание: Служит посредником сообщений для системы логирования, обеспечивая высокопроизводительную буферизацию логов. При возникновении узких мест в обработке кластера Elasticsearch, получает лог-данные, отправленные Filebeat через Topics, способствуя снижению пиковых нагрузок и асинхронному потреблению, что гарантирует стабильность сбора логов.
Core Functionality Concepts
Log Collection Pipeline
Описание: Полный цикл от генерации лог-данных до их хранения, состоящий из четырёх этапов: Сбор -> Передача -> Буферизация -> Хранение. Поддерживает два режима конвейера:
- Режим прямой записи: Filebeat → Elasticsearch/ClickHouse
- Режим буфера: Filebeat → Kafka → Elasticsearch
Index
Описание: Логическая единица разбиения данных в Elasticsearch, аналогичная структуре таблицы в базах данных. Поддерживает создание временных индексных роллов (например, logstash-2023.10.01) и автоматизированное многоуровневое хранение hot-warm-cold с помощью Index Lifecycle Management (ILM).
Shards and Replicas
Описание:
- Shard: Физическая единица хранения, образующаяся в результате горизонтального разбиения индекса в Elasticsearch, обеспечивающая масштабируемость распределённой системы.
- Replica: Копия каждого шарда, обеспечивающая высокую доступность данных и балансировку нагрузки при запросах.
Columnar Storage
Описание: Основной механизм хранения в ClickHouse, при котором данные сжимаются и хранятся по столбцам, что значительно снижает затраты на ввод-вывод. Поддерживает следующие возможности:
- Векторизованный движок выполнения запросов
- Разбиение данных и шардирование
- Материализованные представления для предварительной агрегации
Storage Policy
Описание: Модель размещения хранения в ClickHouse, контролирующая, где хранятся метаданные и данные таблиц логов. В ACP Logging ClickHouse поддерживает:
- По умолчанию: Хранение данных ClickHouse в локальных путях хоста или в StorageClass.
- Разделение хранения и вычислений: Хранение метаданных ClickHouse локально или в StorageClass, а данных таблиц логов — в удалённом хранилище S3.
Cold and Hot Separate
Описание: Модель многоуровневого хранения для ClickHouse. Активные данные остаются в текущем хранилище ClickHouse, а холодные данные после достижения настроенного порога хранения переносятся в S3. Эта модель используется при необходимости долгосрочного хранения без удержания всех данных в активном хранилище.
Key Technical Terms
Ingest Pipeline
Описание: Конвейер предварительной обработки данных в Elasticsearch, способный выполнять операции ETL, такие как переименование полей, парсинг Grok и условную логику до записи данных.
Consumer Group
Описание: Механизм параллельного потребления в Kafka, при котором несколько экземпляров в одной группе потребителей могут параллельно обрабатывать сообщения из разных партиций, обеспечивая упорядоченную обработку сообщений.
TTL (Time To Live)
Описание: Стратегия жизненного цикла данных, поддерживающая два способа реализации:
- Elasticsearch: Автоматическое удаление устаревших индексов через политики ILM.
- ClickHouse: Использование выражений TTL для удаления устаревших данных или перемещения подходящих данных в холодное хранилище.
Replication Factor
Описание: Конфигурация избыточности данных на уровне Kafka Topic, определяющая количество реплик сообщений на разных Brokers для повышения надёжности данных.