Архитектура модуля логирования

Содержание
Общее описание архитектуры
Система логирования состоит из следующих основных функциональных модулей:
-
Сбор логов
- Основан на open-source компоненте filebeat
- Сбор логов: поддерживается сбор логов стандартного вывода, файловых логов, событий Kubernetes и аудитов.
-
Хранение логов
- Предоставляются два различных решения для хранения логов на базе open-source компонентов Clickhouse и ElasticSearch.
- Хранение логов: поддерживается долговременное хранение лог-файлов.
- Управление временем хранения логов: поддерживается управление сроком хранения логов на уровне проекта.
-
Визуализация логов
- Обеспечивает удобный и надежный поиск логов, экспорт логов и возможности анализа логов.
Сбор логов
Метод установки компонента
nevermore устанавливается как daemonset в namespace cpaas-system каждого кластера. Этот компонент состоит из 4 контейнеров:
Название | Функция |
---|
audit | Сбор данных аудита |
event | Сбор данных событий |
log | Сбор логов (включая стандартный вывод и файловые логи) |
node-problem-detector | Сбор информации об аномалиях на узлах |
Процесс сбора данных
После того как nevermore собирает информацию аудита/событий/логов, он отправляет данные в кластер хранения логов, проходя аутентификацию через Razor, после чего данные окончательно сохраняются в ElasticSearch или ClickHouse.
Потребление и хранение логов
Razor
Razor отвечает за аутентификацию, прием и пересылку сообщений логов.
- После получения запросов от nevermore из различных рабочих кластеров Razor сначала аутентифицирует их с помощью Token, содержащегося в запросе. При неудачной аутентификации запрос отклоняется.
- Если установлен компонент хранения логов ElasticSearch, соответствующие логи записываются в Kafka кластер.
- Если установлен компонент хранения логов Clickhouse, соответствующие логи передаются в Vector, который в конечном итоге записывает их в Clickhouse.
Lanaya
Lanaya отвечает за потребление и пересылку данных логов в цепочке хранения логов ElasticSearch.
- Lanaya подписывается на темы в Kafka. После получения сообщений по подписке она распаковывает сообщения.
- После распаковки выполняется предварительная обработка сообщений: добавление необходимых полей, преобразование полей и разделение данных.
- В конце сообщения сохраняются в соответствующем индексе ElasticSearch в зависимости от времени и типа сообщения.
Vector
Vector отвечает за обработку и пересылку данных логов в цепочке хранения логов Clickhouse, в конечном итоге сохраняя логи в соответствующей таблице Clickhouse.
Визуализация логов
- Пользователи могут выполнять запросы аудита/событий/логов через URL-адреса из UI интерфейса продукта для отображения:
- Запрос логов /platform/logging.alauda.io/v1
- Запрос событий /platform/events.alauda.io/v1
- Запрос аудита /platform/audits.alauda.io/v1
- Запросы обрабатываются компонентом advanced API Courier, который выполняет запросы к данным логов из кластеров хранения ElasticSearch или Clickhouse и возвращает результаты на страницу.