Мониторинг состояния сервера: установка Grafana и интеграция с Prometheus

Мониторинг состояния сервера: установка Grafana и интеграция с Prometheus
Prometheus лого

Prometheus собирает метрики, но без Grafana их трудно анализировать. Рассказываем, как превратить сырые данные в интерактивные графики. В статье — установка Grafana на Ubuntu и CentOS, подключение источников, создание дашбордов с загрузкой CPU и дисков.

Grafana — оупен-сорс-приложение для визуализации и анализа метрик.

Grafana логотип

Оно не хранит данные самостоятельно, а подключается к внешним источникам: мониторинговым системам, облачным сервисам, базам данных. Установка на VPS позволяет централизовать мониторинг серверов и сервисов в распределённой инфраструктуре.

С его помощью можно создавать интерактивные дашборды с графиками, таблицами и уведомлениями. Grafana поддерживает десятки плагинов, включая интеграцию с Prometheus, MySQL, Elasticsearch и другими инструментами. Grafana популярна за счёт гибкой настройки, поддержки плагинов и наглядного интерфейса.

Аренда VPS/VDS от 219 руб/месяц

Преимущества VPS в AdminVPS:

✓ Бесплатное администрирование

✓ Только быстрые NVMe-диски

✓ Защита от DDoS-атак

✓ Быстрая техподдержка

Аренда VPS/VDS виртуального сервера от AdminVPS — это прозрачная и честная услуга с доступной ценой

Как работают Grafana, Prometheus и Node Exporter

Прежде чем переходить к установке, разберёмся, как взаимодействуют между собой эти приложения и какую роль выполняет каждое из них:

Node Exporter — агент, собирающий системные метрики: загрузку CPU и оперативной памяти, статистику по дискам и сети. Он публикует системные метрики на порт 9100 в формате, который считывает Prometheus. Кроме Node Exporter могут быть и другие процессы, обеспечивающие сбор и передачу данных; такие процессы называются экспортёрами. После запуска экспортёр собирает информацию и ожидает запросов от Prometheus на заданном порту.

Prometheus периодически собирает метрики от Node Exporter (с порта 9100) или других экспортёров и хранит их в виде временных рядов. Через веб-интерфейс Prometheus можно выполнять запросы на языке PromQL и просмотреть информацию, но визуализация здесь ограничена.

Grafana — визуальный слой системы. Она подключается к Prometheus как к источнику данных и преобразует «сырые» данные в графики и дашборды, которые удобно анализировать.

То есть от сбора до визуализации данные проходят по такому пути:

Сбор метрик экспортёром (в нашем случае Node Exporter) → их хранение в Prometheus → визуальное отображение в Grafana.

Установка Grafana

Grafana устанавливают двумя способами в зависимости от дистрибутива, поэтому рассмотрим их оба.

Установка через репозиторий

Для Ubuntu/Debian. Добавление GPG-ключ и репозитория:

sudo apt-get install -y apt-transport-https 
sudo wget -q -O /usr/share/keyrings/grafana.key https://apt.grafana.com/gpg.key 
echo "deb [signed-by=/usr/share/keyrings/grafana.key] https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list  

Обновление кеша пакетов и установка приложения:

sudo apt-get update 
sudo apt-get install -y grafana  

Для CentOS/RHEL. Создание файла /etc/yum.repos.d/grafana.repo:

[grafana] 
name=grafana 
baseurl=https://packages.grafana.com/oss/rpm 
repo_gpgcheck=1 
enabled=1 
gpgcheck=1 
gpgkey=https://packages.grafana.com/gpg.key 
sslverify=1 
sslcacert=/etc/pki/tls/certs/ca-bundle.crt  

Когда файл создан, обновите пакеты и затем установите приложение:

sudo yum install -y grafana  

Запустите службу и активируйте автозагрузку — последовательно выполните daemon-reload, start grafana-server и enable grafana-server.

Теперь нужно настроить файрвол. Откройте порт 3000:

sudo ufw allow 3000/tcp  # Для UFW 
sudo firewall-cmd --permanent --add-port=3000/tcp && sudo firewall-cmd --reload  # Для firewalld  

Первичная настройка Grafana

Grafana имеет web-UI, зайдите в него:

http://ваш_сервер:3000

Пройдите аутентификацию. Дефолтные login / password — admin / admin. Вам предложат изменить пароль — сделайте это сразу, не откладывая.

Сейчас Grafana не отображает никаких данных. Чтобы визуализировать информацию, которую собирает Prometheus, нужно добавить его как источник. В боковом меню выберите Configuration/Settings → Data Sources → Add data source. Grafana уже из коробки настроена для работы с большим количеством источников данных, найдите в их списке Prometheus и нажмите Select.

Заполните поля:

  • URL: http://localhost:9090 (если Prometheus на том же сервере).
  • Access: Server (Grafana будет делать запросы от имени сервера).

Сохраните настройки, нажав Save & Test. Если подключение успешно, появится зелёное уведомление «Data source is working».

Создание дашборда для мониторинга сервера

Вы можете создавать дашборды вручную или импортировать готовые. Рассмотрим оба варианта.

Импорт готового дашборда:

  1. Перейдите в Create → Import.
  2. Введите ID дашборда: 1860 (стандартный дашборд Node Exporter Full).
  3. Выберите источник данных — ранее добавленный Prometheus.
  4. Дашборд автоматически отобразит метрики CPU, памяти, дисков и сети.

Ручное создание дашборда:

  1. Выберите Create → Dashboard → Add new panel.
  2. Найдите раздел Query и выберите Prometheus в качестве источника данных.
  3. Заполните поле запроса. Для примера создадим дашборд с графиком загрузки процессора:
100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[1m])) * 100)  
  1. В разделе Visualization выберите тип Time series.
  2. В Panel options задайте название: Загрузка CPU.

Ещё один пример — для использования памяти:

  • Запрос:
(node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes * 100  
  • Тип визуализации: Gauge.
  • Настройте пороговые значения в Standard options:
    • Warning (жёлтый): 70 %;
    • Critical (красный): 90 %.

Пример 3 — свободное место на диске.

  • Запрос:
node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"} * 100  
  • Визуализация: Bar gauge.

В конце настройки сохраните дашборд кнопкой Save в верхнем меню.

Оптимизация и безопасность

Настройка HTTPS. Получите сертификат через Certbot:

sudo certbot certonly --standalone -d grafana.your-domain.com  

Отредактируйте конфиг Grafana (/etc/grafana/grafana.ini):

[server] 
protocol = https 
cert_file = /etc/letsencrypt/live/grafana.your-domain.com/fullchain.pem 
cert_key = /etc/letsencrypt/live/grafana.your-domain.com/privkey.pem  

Перезапустите Grafana:

sudo systemctl restart grafana-server  

Резервное копирование. Для бекапа используйте:

sudo sqlite3 /var/lib/grafana/grafana.db .dump > grafana_backup.sql  

Ограничение доступа. Включите вход через GitHub в разделе Auth настроек Grafana. Настройте роли пользователей в Configuration → Users and access.

Регулярно обновляйте Grafana и её плагины, чтобы получать новые функции и исправления уязвимостей:

sudo apt-get update && sudo apt-get upgrade grafana         # Debian/Ubuntu 
sudo yum update grafana                   # CentOS/RHEL  

Интеграция с Alertmanager (опционально). Для отправки уведомлений о проблемах используйте Alertmanager. Установите и настройте его, затем в Grafana перейдите в Alerting → Contact points → New contact point. Выберите тип уведомления (Email, Slack, Telegram) и заполните параметры. Создайте правила алертов в разделе Alert rules.

Заключение

Мониторинг сервера важен для стабильной работы инфраструктуры. Настроив связку Grafana и Prometheus, вы получили полноценную мониторинговую систему, которая собирает метрики CPU, памяти и диска, а также визуализирует их в удобном формате. Теперь вы можете отслеживать метрики, прогнозировать нагрузку, вовремя выявлять аномалии или оптимизировать ресурсы.

Читайте в блоге:

Loading spinner
0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

VPN на VPS-сервере

Узнайте, как создать собственный VPN на VPS-сервере для защиты ваших конфиденциальных данных!

Что будем искать? Например,VPS-сервер

Мы в социальных сетях