Связал состояние сервера
с состоянием приложения.
Задача мониторинга — видеть, где возникла проблема: на хосте, в контейнере, HTTP-сервисе или базе данных. Поэтому сбор показателей организован на нескольких уровнях.
Prometheus получает метрики, Grafana показывает их в дашбордах, Alertmanager принимает события правил. Отдельный Netdata дополняет наблюдение за сервером. Внешний получатель уведомлений Alertmanager пока не настроен.
Каждый слой наблюдается отдельно.
- node_exporter — процессор, память, диски и загрузка Debian.
- cAdvisor — состояние и использование ресурсов контейнерами.
- blackbox_exporter — проверка доступности HTTP.
- postgres_exporter — метрики PostgreSQL.
Prometheus собирает, Grafana отображает.
Источники передают метрики в Prometheus. Он хранит временные ряды и вычисляет правила оповещений. Grafana отображает данные на панелях. Netdata используется отдельно для наблюдения за хостом в реальном времени.
Оповещения отделены от доставки уведомлений.
При сбое HTTP-проверка и метрики контейнеров помогают определить затронутый слой. Prometheus вычисляет правила и передаёт события в Alertmanager.
Сбой связывается с состоянием системы.
Недоступность HTTP проверяется вместе с состоянием контейнеров, маршрутизатора и туннелей. Если ошибка появилась после выпуска, проверяется возможность возврата версии. Данные на интерактивных схемах сайта иллюстрируют связи сервисов; это не текущая телеметрия сервера.