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

Содержание
Общее описание архитектуры
Система мониторинга состоит из следующих основных функциональных модулей:
- Система мониторинга
- Сбор и хранение данных: сбор и сохранение метрик мониторинга из различных источников
- Запрос и визуализация данных: предоставление гибких возможностей для запроса и визуализации данных мониторинга
- Система оповещений
- Управление правилами оповещений: настройка и управление политиками оповещений
- Генерация оповещений и уведомлений: оценка правил оповещений и отправка уведомлений
- Статус оповещений в реальном времени: предоставление актуального статуса оповещений системы
- Система уведомлений
- Конфигурация уведомлений: управление шаблонами уведомлений, группами контактов и политиками
- Сервер уведомлений: управление конфигурацией различных каналов уведомлений
Система мониторинга
Сбор и хранение данных
- Обязанности оператора Prometheus/VictoriaMetrics:
- Загрузка и валидация конфигураций сбора мониторинга
- Загрузка и валидация конфигураций правил оповещений
- Синхронизация конфигураций с экземплярами Prometheus/VictoriaMetrics
- Источники данных мониторинга:
- Nevermore: генерирует метрики, связанные с логами
- Warlock: генерирует метрики, связанные с событиями
- Prometheus/VictoriaMetrics: обнаруживает и собирает метрики различных экспортеров через ServiceMonitor
Запрос и визуализация данных
-
Процесс запроса данных мониторинга:
- Браузер инициирует запрос (Путь:
/platform/monitoring.alauda.io/v1beta1
)
- ALB перенаправляет запрос компоненту Courier
- API Courier обрабатывает запрос:
- Встроенные метрики: получает PromQL через интерфейс индикаторов и выполняет запрос
- Пользовательские метрики: напрямую пересылает PromQL в компонент мониторинга
- Панель мониторинга получает данные и отображает их
-
Процесс управления панелью мониторинга:
- Пользователи обращаются к ALB кластера
global
(Путь: /kubernetes/cluster_name/apis/ait.alauda.io/v1alpha2/MonitorDashboard
)
- ALB перенаправляет запрос компоненту Erebus
- Erebus маршрутизирует запрос в целевой кластер мониторинга
- Компонент Warlock отвечает за:
- Проверку корректности конфигурации панели мониторинга
- Управление ресурсом MonitorDashboard CR
Система оповещений
Управление правилами оповещений
Процесс конфигурации правил оповещений:
- Пользователи обращаются к ALB кластера
global
(Путь: /kubernetes/cluster_name/apis/monitoring.coreos.com/v1/prometheusrules
)
- Запрос проходит через ALB -> Erebus -> kube-apiserver целевого кластера
- Обязанности компонентов:
- Оператор Prometheus/VictoriaMetrics:
- Проверка корректности правил оповещений
- Управление ресурсом PrometheusRule CR
- Nevermore: прослушивание и обработка метрик оповещений по логам
- Warlock: прослушивание и обработка метрик оповещений по событиям
Рабочий процесс обработки оповещений
- Оценка оповещений:
- Правила оповещений определяются в PrometheusRule/VMRule
- Prometheus/VictoriaMetrics периодически оценивает правила
- Уведомление об оповещениях:
- При срабатывании оповещения отправляются в Alertmanager
- Alertmanager -> ALB -> API Courier
- API Courier отвечает за рассылку уведомлений
- Хранение оповещений:
- История оповещений сохраняется в ElasticSearch/ClickHouse
Статус оповещений в реальном времени
- Сбор статуса:
- Компонент Courier кластера
global
генерирует метрики:
- cpaas_active_alerts: текущие активные оповещения
- cpaas_active_silences: текущие конфигурации заглушек
- Глобальный Prometheus собирает данные каждые 15 секунд
- Отображение статуса:
- Фронтенд запрашивает и отображает статус в реальном времени через API Courier
Система уведомлений
Управление конфигурацией уведомлений
Процесс управления шаблонами уведомлений, группами контактов и политиками уведомлений:
- Пользователи обращаются к стандартному API кластера
global
через браузер
- Путь доступа:
/apis/ait.alauda.io/v1beta1/namespaces/cpaas-system
- Управление соответствующими ресурсами:
- Шаблон уведомления: apiVersion: "ait.alauda.io/v1beta1", kind: "NotificationTemplate"
- Группа контактов уведомлений: apiVersion: "ait.alauda.io/v1beta1", kind: "NotificationGroup"
- Политика уведомлений: apiVersion: "ait.alauda.io/v1beta1", kind: "Notification"
- Courier отвечает за:
- Проверку корректности шаблонов уведомлений
- Проверку корректности групп контактов уведомлений
- Проверку корректности политик уведомлений
Управление сервером уведомлений
- Пользователи обращаются к ALB кластера
global
через браузер
- Путь доступа:
/kubernetes/global/api/v1/namespaces/cpaas-system/secrets
- Управление и отправка конфигураций сервера уведомлений
- Имя ресурса: platform-email-server
- Courier отвечает за:
- Проверку корректности конфигурации сервера уведомлений