Другое

Настройка мониторинга в Linux с использованием Prometheus и Grafana

Если вам нужно отслеживать производительность серверов и сервисов, вам понадобится эффективный мониторинговый стек. В этом руководстве вы научитесь установить Prometheus для сбора метрик и настроить Grafana для визуализации данных, а также создать базовые оповещения.

Обновлено 28 июля 2026 г.
10-15 мин
Средняя
FixPedia Team
Применимо к:Linux Ubuntu 20.04+, Debian 10+, CentOS 8Windows 10/11 (с использованием WSL2)

Введение

Эффективный мониторинг — это основа стабильной инфраструктуры. Встроенные инструменты Linux (vmstat, iostat, htop) дают лишь поверхностный взгляд. Для многосерверных сред вам понадобится централизованный сборщик метрик и удобная панель визуализации. В этом руководстве вы научитесь настроить бесплатный и открытый стек Prometheus + Grafana, который работает под Linux, Windows (WSL2) и других платформах.

Требования

  • Поддерживаемая ОС: Ubuntu 20.04+, Debian 10+, CentOS 8, или Windows 10/11 с WSL2.
  • Права администратора (для установки пакетов и запуска сервисов).
  • Java 11+ (необходима для Grafana).
  • Свободный порт 9090 для Prometheus и 3000 для Grafana.

Установка Prometheus

Шаг 1: Установите зависимости

# Для Debian/Ubuntu
sudo apt-get update && sudo apt-get install -y curl tar

# Для RHEL/CentOS
sudo yum install -y curl tar

Шаг 2: Скачайте и разархивируйте Prometheus

VERSION=2.51.0
wget https://github.com/prometheus/prometheus/releases/download/v${VERSION}/prometheus-${VERSION}.linux-amd64.tar.gz
sudo tar -xzf prometheus-${VERSION}.linux-amd64.tar.gz -C /opt
sudo ln -s /opt/prometheus-${VERSION}.linux-amd64 /opt/prometheus

Шаг 3: Настройте prometheus.yml

global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'node'
    static_configs:
      - targets: ['localhost:9100']

⚠️ Важно: замените localhost:9100 на адрес хоста, где работает node exporter.

Шаг 4: Запустите Prometheus в качестве сервиса

sudo tee /etc/systemd/system/prometheus.service > /dev/null <<EOF
[Unit]
Description=Prometheus
After=network.target

[Service]
User=root
ExecStart=/opt/prometheus/prometheus --config.file=/opt/prometheus/prometheus.yml

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl enable --now prometheus

Установка Grafana

Шаг 5: Установите Grafana из пакета

wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt-get update
sudo apt-get install -y grafana

Шаг 6: Настройте пароль администратора Grafana

По умолчанию Grafana создает пароль admin. После первой загрузки сервис попросит сменить его. Вы можете изменить пароль через веб-интерфейс (http://localhost:3000).

Шаг 7: Добавьте Prometheus в качестве источника данных

  1. Войдите в Grafana (http://localhost:3000).
  2. Перейдите в «Источники данных → Добавить → Prometheus».
  3. Укажите URL http://localhost:9090.
  4. Нажмите «Сохранить и проверить».

Создание дашборда

Шаг 8: Создайте базовый дашборд

  1. В Grafana выберите «Дашборды → + Добавить».
  2. Добавьте панель «Time series».
  3. Укажите запрос, например:
    rate(node_cpu_seconds_total{mode="idle"}[5m])
    
  4. Повторите для памяти (node_memory_Active_bytes) и сетевого трафика (node_network_receive_bytes_total).

Настройка оповещений

Шаг 9: Настройте простое оповещение

Создайте файл /opt/prometheus/alerts.yml:

groups:
  - name: system
    rules:
      - alert: HighCPU
        expr: node_cpu_seconds_total{mode="idle"} < 0.2
        for: 2m
        labels:
          severity: warning
        annotations:
          summary: "Высокое использование CPU (>80%) на {{ $labels.instance }}"

Загрузите правило в Prometheus:

sudo /opt/prometheus/prometheus --config.file=/opt/prometheus/prometheus.yml --alertconfig.file=/opt/prometheus/alerts.yml -web.enable-admin-api

Проверка результата

  • Перейдите по адресу http://localhost:3000 и войдите с помощью admin/admin (измените пароль при первом входе).
  • Откройте созданный дашборд — графики должны отображать данные.
  • Вызовите целевую метрику (curl http://localhost:9090/metrics) для подтверждения сбора данных.

Возможные проблемы

  • Prometheus не может сканировать цель – убедитесь, что экспортер работает (curl localhost:9100/metrics) и порт доступен.
  • Дашборд пустой – проверьте источник данных, убедитесь, что метрика существует в Prometheus (/metrics).
  • Grafana не загружается – проверьте логи (journalctl -u grafana-server), возможно, порт 3000 занят другим сервисом.

Не стесняйтесь расширять стек дополнительными экспортерами (например, mysql-exporter, blackbox-exporter) или добавлять более сложные оповещения через Grafana Alertmanager. Настроенный мониторинг поможет вам быстро реагировать на изменения производительности и поддерживать высокую доступность сервисов.

Часто задаваемые вопросы

Зачем нужен отдельный сборщик метрик, если Linux уже имеет инструменты типа `vmstat` и `iostat`?
Можно ли использовать Grafana без Prometheus?
Как настроить оповещения без использования email?
Что делать, если дашборд не отображает данные?

Полезное

Установите зависимости
Скачайте и разархивируйте Prometheus
Настройте `prometheus.yml`
Запустите Prometheus в качестве сервиса
Установите Grafana из пакета
Настройте пароль администратора Grafana
Добавьте Prometheus в качестве источника данных
Создайте базовый дашборд
Настройте простое оповещение
Проверьте работу мониторинга

Эта статья помогла вам решить проблему?