====== Prometheus, Grafana, Loki - Observability инфраструктуры ====== ===== Реклама ===== * Мониторинг не нужен, если он формален и не нацелен на бизнес-результат * Observability — переход от простого сбора метрик к пониманию влияния ИТ-инфраструктуры на бизнес-показатели, прогнозированию сбоев и автоматизации реагирования * Бизнес-метрики - мониторинг не сервисов, а действий пользователя (например, количество успешных подключений) * Умные оповещения - должны приходить только при реальной угрозе для сервиса а не по каждому незначительному отклонению * Автоматизация - запуск процедур восстановления параллельно с уведомлениями инженеров ===== Техническое задание ===== * Настроить учет работы систем, сервисов и сетей предприятия с точки зрения: метрик (Service Level Indicator - SLI), целей команды предприятия (Service Level Objective - SLO) и гарантий для клиентов (Service Level Agreement - SLA) ===== Модуль 1. Основы наблюдаемости и архитектура стека ===== ==== Теория ==== * [[https://habr.com/ru/articles/956318/|SLA, SLO, SLI простыми словами и с примерами]] * SLA (Service Level Agreement) и SLO (Service Level Objective) * Метрики, Логи, Трейсы, Чем отличается мониторинг от наблюдаемости * Роль каждого компонента (Prometheus, Grafana, Loki) в экосистеме ==== Практика ==== * Установка Prometheus и Grafana ===== Модуль 2. Сбор и анализ метрик с Prometheus ===== * Настройка экспортеров (Node Exporter для метрик ОС), принцип pull-модели, Service Discovery * Язык запросов PromQL: Изучение типов данных (счетчики, измеряемые величины, гистограммы), операторов и агрегаций * Оценка загрузки CPU, RAM, сети, задержки ввода/вывода ===== Модуль 3. Централизация логов с Loki ===== * Установка Grafana Loki * Установка и настройка Promtail для доставки логов приложений и системных журналов * Язык LogQL, фильтрация и анализ логов (поиск ошибок, парсинг JSON, агрегация статистики по логам) ===== Модуль 4. Визуализация данных и дашборды в Grafana ===== * Подключение Prometheus и Loki к Grafana. * Создание дашбордов, типы панелей (Time series, Table, Stat, Logs), настройка внешнего вида и переменных, интерактивные дашборды * Пример дашборда "Мониторинг сервера" с метриками (CPU/RAM) и виджетом последних ошибок из логов ===== Модуль 5. Алертинг и обнаружение проблем ===== * Prometheus + Alertmanager, создание правил алертинга (например, "сервер не отвечает", "много 500-х ошибок") * Настройка маршрутизации уведомлений (Email, Telegram) * Управление инцидентами, настройка silence (подавление алертов), агрегация нотификаций * Grafana Alerting, настройка алертов непосредственно в интерфейсе Grafana ===== Черновик ===== * Процент и время задержки писем через greylist