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

Содержание
Общее описание архитектурыСбор логовМетод установки компонентаПроцесс сбора данныхПотребление и хранение логовRazorLanayaVectorВизуализация логовОбщее описание архитектуры
Система логирования состоит из следующих основных функциональных модулей:
-
Сбор логов
- Реализован на базе open-source компонента filebeat
- Сбор логов: поддерживается сбор логов стандартного вывода, файловых логов, событий Kubernetes и аудитов.
-
Хранение логов
- Предоставляются два различных решения для хранения логов на базе open-source компонентов ClickHouse и Elasticsearch.
- Хранение логов: поддерживается долговременное хранение лог-файлов.
- Управление временем хранения логов: поддерживается управление сроком хранения логов на уровне проекта.
-
Визуализация логов
- Обеспечивает удобный и надежный поиск логов, экспорт логов и возможности анализа логов.
Сбор логов
Метод установки компонента
nevermore устанавливается как daemonset в namespace cpaas-system каждого кластера. Этот компонент состоит из 4 контейнеров:
Процесс сбора данных
После того как 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 и возвращает данные на страницу.