Как настроить мониторинг ресурсов сервера (CPU, RAM, Диск) через Grafana и Prometheus?
Мониторинг ресурсов сервера через Grafana и Prometheus — это мощная связка для отслеживания CPU, RAM, дискового пространства и других метрик в реальном времени. Ниже представлено пошаговое руководство по настройке.
## Шаг 1: Установка Prometheus
Скачайте последнюю версию Prometheus с официального сайта prometheus.io. Распакуйте архив и создайте конфигурационный файл `prometheus.yml`. В секции `scrape_configs` укажите цели для сбора метрик:
yaml
scrape_configs:
— job_name: ‘node’
static_configs:
— targets: [‘localhost:9100’]
Запустите Prometheus командой `./prometheus —config.file=prometheus.yml`. По умолчанию интерфейс доступен на порту 9090.
## Шаг 2: Установка Node Exporter
Node Exporter — это агент, который собирает системные метрики (CPU, RAM, диск, сеть) и экспортирует их для Prometheus. Скачайте Node Exporter, распакуйте и запустите:
bash
./node_exporter
По умолчанию он слушает порт 9100. Убедитесь, что адрес `localhost:9100/metrics` возвращает данные.
## Шаг 3: Установка Grafana
Установите Grafana через пакетный менеджер вашей системы или Docker:
bash
docker run -d -p 3000:3000 grafana/grafana
Откройте браузер по адресу `http://localhost:3000`. Логин и пароль по умолчанию: `admin/admin`.
## Шаг 4: Подключение Prometheus как источника данных
В Grafana перейдите в раздел **Configuration → Data Sources → Add data source**. Выберите **Prometheus** и укажите URL: `http://localhost:9090`. Нажмите **Save & Test**.
## Шаг 5: Импорт готового дашборда
Наиболее популярный дашборд для Node Exporter — **ID 1860** (Node Exporter Full). Перейдите в **Dashboards → Import**, введите ID `1860` и выберите источник данных Prometheus. Дашборд автоматически отобразит:
— **CPU**: загрузка по ядрам, iowait, steal
— **RAM**: использование, кэш, swap
— **Диск**: занятое/свободное место, IOPS, скорость чтения/записи
— **Сеть**: входящий/исходящий трафик
## Шаг 6: Создание алертов
В Grafana настройте уведомления при превышении порогов. Например, для CPU > 90%:
1. Откройте нужную панель и нажмите **Edit**.
2. Перейдите на вкладку **Alert**.
3. Задайте условие: `avg() OF query > 90`.
4. Укажите канал уведомлений (Email, Telegram, Slack).
## Полезные PromQL-запросы
— **CPU**: `100 — (avg by(instance)(rate(node_cpu_seconds_total{mode=»idle»}[5m])) * 100)`
— **RAM**: `(node_memory_MemTotal_bytes — node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes * 100`
— **Диск**: `(node_filesystem_size_bytes — node_filesystem_free_bytes) / node_filesystem_size_bytes * 100`
Такая связка обеспечивает надёжный мониторинг инфраструктуры с минимальными затратами ресурсов.
