mysurik.ru

Grafana + Prometheus: как я настроил мониторинг всего и вся

Grafana Prometheus стека мониторинга

Почему стандартных логов недостаточно

Когда сервер один, проблемы видны сразу: перестал открываться сайт — зашёл по SSH, глянул логи, поправил. Когда сервисов становится 10+, нужен централизованный мониторинг.

Я перепробовал несколько решений: Zabbix — мощный, но конфигурация через веб-морду — ад. Netdata — красиво, но слишком много метрик, глаза разбегаются. InfluxDB + Telegraf — норм, но Telegraf надо настраивать.

Остановился на Prometheus + Grafana. Prometheus собирает метрики, Grafana их рисует.

Что я мониторю

Для начала — базовые метрики сервера через Node Exporter: CPU, RAM, диск, сеть. Prometheus забирает данные с Node Exporter раз в 15 секунд. В Grafana подключил стандартный дашборд Node Exporter Full — сразу видно состояние сервера.

Потом добавил cAdvisor для мониторинга Docker контейнеров: сколько каждый контейнер жрёт памяти, CPU, сколько сетевого трафика генерирует. Очень помогло, когда один контейнер начал течь по памяти.

Blackbox Exporter — проверка доступности сайтов извне. Каждую минуту Prometheus проверяет, отвечает ли mysurik.ru по HTTP. Если не отвечает — Grafana шлёт алерт.

MySQL Exporter — метрики базы данных: количество запросов, медленные запросы, размер таблиц. Заметил, что в определённое время БД тормозит — оказалось, cron запускал бекап таблиц в это же время.

Настройка алертов

Самое полезное — алерты в Telegram. Если CPU зашкаливает за 90% — сообщение в чат. Если диск заполнен на 85% — напоминание. Если сайт не отвечает — срочное уведомление.

Настроил алерты через Alertmanager, который отправляет сообщения через Telegram Bot API. Теперь я узнаю о проблемах быстрее, чем пользователи.

Грабли

Retention данных. По умолчанию Prometheus хранит данные 15 дней. Для моего сценария мало — хочу видеть графики за месяц. Увеличил retention до 30 дней, но пришлось выделить под Prometheus 10 GB диска вместо 2.

Prometheus не умеет шифроваться — все данные идут в открытую. Пришлось повесить всё за nginx с базовой аутентификацией.

Совет

Не пытайтесь мониторить всё сразу. Начните с CPU, RAM, диска и доступности сайта. Добавляйте метрики по мере необходимости. И обязательно настройте алерты в Telegram — иначе смысла в мониторинге нет.

Ваш комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *