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

Содержание

Общее описание архитектуры

Система логирования состоит из следующих основных функциональных модулей:

  1. Сбор логов

    • Основан на open-source компоненте filebeat
    • Сбор логов: поддерживается сбор логов стандартного вывода, файловых логов, событий Kubernetes и аудитов.
  2. Хранение логов

    • Предоставляются два различных решения для хранения логов на базе open-source компонентов Clickhouse и ElasticSearch.
    • Хранение логов: поддерживается долговременное хранение лог-файлов.
    • Управление временем хранения логов: поддерживается управление сроком хранения логов на уровне проекта.
  3. Визуализация логов

    • Обеспечивает удобный и надежный поиск логов, экспорт логов и возможности анализа логов.

Сбор логов

Метод установки компонента

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.

Визуализация логов

  1. Пользователи могут выполнять запросы аудита/событий/логов через URL-адреса из UI интерфейса продукта для отображения:
  • Запрос логов /platform/logging.alauda.io/v1
  • Запрос событий /platform/events.alauda.io/v1
  • Запрос аудита /platform/audits.alauda.io/v1
  1. Запросы обрабатываются компонентом advanced API Courier, который выполняет запросы к данным логов из кластеров хранения ElasticSearch или Clickhouse и возвращает результаты на страницу.