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

Содержание

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

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

  1. Система мониторинга
    • Сбор и хранение данных: сбор и сохранение метрик мониторинга из различных источников
    • Запрос и визуализация данных: предоставление гибких возможностей для запроса и визуализации данных мониторинга
  2. Система оповещений
    • Управление правилами оповещений: настройка и управление политиками оповещений
    • Генерация оповещений и уведомлений: оценка правил оповещений и отправка уведомлений
    • Статус оповещений в реальном времени: предоставление актуального статуса оповещений системы
  3. Система уведомлений
    • Конфигурация уведомлений: управление шаблонами уведомлений, группами контактов и политиками
    • Сервер уведомлений: управление конфигурацией различных каналов уведомлений

Система мониторинга

Сбор и хранение данных

  1. Обязанности оператора Prometheus/VictoriaMetrics:
    • Загрузка и валидация конфигураций сбора мониторинга
    • Загрузка и валидация конфигураций правил оповещений
    • Синхронизация конфигураций с экземплярами Prometheus/VictoriaMetrics
  2. Источники данных мониторинга:
    • Nevermore: генерирует метрики, связанные с логами
    • Warlock: генерирует метрики, связанные с событиями
    • Prometheus/VictoriaMetrics: обнаруживает и собирает метрики различных экспортеров через ServiceMonitor

Запрос и визуализация данных

  1. Процесс запроса данных мониторинга:

    • Браузер инициирует запрос (Путь: /platform/monitoring.alauda.io/v1beta1)
    • ALB перенаправляет запрос компоненту Courier
    • API Courier обрабатывает запрос:
      • Встроенные метрики: получает PromQL через интерфейс индикаторов и выполняет запрос
      • Пользовательские метрики: напрямую пересылает PromQL в компонент мониторинга
    • Панель мониторинга получает данные и отображает их
  2. Процесс управления панелью мониторинга:

    • Пользователи обращаются к ALB кластера global (Путь: /kubernetes/cluster_name/apis/ait.alauda.io/v1alpha2/MonitorDashboard)
    • ALB перенаправляет запрос компоненту Erebus
    • Erebus маршрутизирует запрос в целевой кластер мониторинга
    • Компонент Warlock отвечает за:
      • Проверку корректности конфигурации панели мониторинга
      • Управление ресурсом MonitorDashboard CR

Система оповещений

Управление правилами оповещений

Процесс конфигурации правил оповещений:

  1. Пользователи обращаются к ALB кластера global (Путь: /kubernetes/cluster_name/apis/monitoring.coreos.com/v1/prometheusrules)
  2. Запрос проходит через ALB -> Erebus -> kube-apiserver целевого кластера
  3. Обязанности компонентов:
    • Оператор Prometheus/VictoriaMetrics:
      • Проверка корректности правил оповещений
      • Управление ресурсом PrometheusRule CR
    • Nevermore: прослушивание и обработка метрик оповещений по логам
    • Warlock: прослушивание и обработка метрик оповещений по событиям

Рабочий процесс обработки оповещений

  1. Оценка оповещений:
    • Правила оповещений определяются в PrometheusRule/VMRule
    • Prometheus/VictoriaMetrics периодически оценивает правила
  2. Уведомление об оповещениях:
    • При срабатывании оповещения отправляются в Alertmanager
    • Alertmanager -> ALB -> API Courier
    • API Courier отвечает за рассылку уведомлений
  3. Хранение оповещений:
    • История оповещений сохраняется в ElasticSearch/ClickHouse

Статус оповещений в реальном времени

  1. Сбор статуса:
    • Компонент Courier кластера global генерирует метрики:
      • cpaas_active_alerts: текущие активные оповещения
      • cpaas_active_silences: текущие конфигурации заглушек
    • Глобальный Prometheus собирает данные каждые 15 секунд
  2. Отображение статуса:
    • Фронтенд запрашивает и отображает статус в реальном времени через API Courier

Система уведомлений

Управление конфигурацией уведомлений

Процесс управления шаблонами уведомлений, группами контактов и политиками уведомлений:

  1. Пользователи обращаются к стандартному API кластера global через браузер
    • Путь доступа: /apis/ait.alauda.io/v1beta1/namespaces/cpaas-system
  2. Управление соответствующими ресурсами:
    • Шаблон уведомления: apiVersion: "ait.alauda.io/v1beta1", kind: "NotificationTemplate"
    • Группа контактов уведомлений: apiVersion: "ait.alauda.io/v1beta1", kind: "NotificationGroup"
    • Политика уведомлений: apiVersion: "ait.alauda.io/v1beta1", kind: "Notification"
  3. Courier отвечает за:
    • Проверку корректности шаблонов уведомлений
    • Проверку корректности групп контактов уведомлений
    • Проверку корректности политик уведомлений

Управление сервером уведомлений

  1. Пользователи обращаются к ALB кластера global через браузер
    • Путь доступа: /kubernetes/global/api/v1/namespaces/cpaas-system/secrets
  2. Управление и отправка конфигураций сервера уведомлений
    • Имя ресурса: platform-email-server
  3. Courier отвечает за:
    • Проверку корректности конфигурации сервера уведомлений