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

    Содержание

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

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

    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 отвечает за:
      • Проверку корректности конфигурации сервера уведомлений