bolt Valebyte VPS от $4/мес — NVMe, запуск за 60 секунд.

Получить VPS arrow_forward
eco Начальный Туториал

Мониторинг Bare Metal: Prometheus и Grafana Руководство

calendar_month Jul 25, 2026 schedule 11 мин. чтения visibility 12 просмотров
info

Нужен сервер для этого гайда? Мы предлагаем выделенные серверы и VPS в 50+ странах с мгновенной настройкой.

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

Нужен сервер для этого гайда?

Разверните VPS или выделенный сервер за минуты.

Зачем отслеживать ваш Bare Metal сервер?

Выделенные серверы предлагают непревзойденную мощность, контроль и производительность, но с большой мощностью приходит и ответственность за бдительный надзор. Мониторинг вашего Bare Metal сервера с помощью таких инструментов, как Prometheus и Grafana, — это не просто лучшая практика; это необходимо для:

  • Проактивное решение проблем: Обнаруживайте аномалии, узкие места в ресурсах и потенциальные аппаратные сбои до того, как они повлияют на ваши сервисы.
  • Оптимизация производительности: Понимайте шаблоны использования CPU, RAM, дискового ввода-вывода (disk I/O) и сети для тонкой настройки приложений и инфраструктуры.
  • Управление ресурсами: Точно оценивайте, соответствуют ли текущие спецификации вашего сервера требованиям, или требуется обновление.
  • Надежность и время безотказной работы (Uptime): Убедитесь, что ваши критически важные приложения, будь то игровые серверы, высоконагруженные веб-сайты, базы данных или CI/CD-конвейеры, остаются работоспособными и отзывчивыми.
  • Планирование мощностей: Собирайте исторические данные для принятия обоснованных решений о будущем масштабировании инфраструктуры.

Для системных администраторов, разработчиков и компаний, использующих выделенный хостинг, надежное решение для мониторинга предоставляет аналитические данные, необходимые для максимизации отдачи от инвестиций в инфраструктуру.

Понимание Prometheus и Grafana

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

Prometheus: Сборщик данных и база данных временных рядов

Prometheus — это набор инструментов с открытым исходным кодом для мониторинга систем и оповещения, изначально разработанный в SoundCloud. Он известен своей мощной многомерной моделью данных (данные временных рядов, идентифицируемые по имени метрики и парам ключ/значение), гибким языком запросов (PromQL) и эффективным хранилищем.

  • Модель сбора (Scraping): Prometheus извлекает (scrapes) метрики из настроенных целей через заданные интервалы.
  • Экспортеры (Exporters): Небольшие приложения, которые предоставляют метрики из различных сервисов (например, Node Exporter для метрик ОС сервера, Blackbox Exporter для зондирования конечных точек).
  • Обнаружение сервисов (Service Discovery): Может динамически обнаруживать цели для мониторинга.
  • Alertmanager: Обрабатывает оповещения, отправленные Prometheus, дедуплицируя, группируя и маршрутизируя их по различным каналам уведомлений.

Grafana: Мощный инструмент для визуализации и дашбордов

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

  • Многофункциональные дашборды: Создавайте пользовательские дашборды с широким набором опций визуализации (графики, таблицы, тепловые карты, одиночные показатели).
  • Несколько источников данных: Поддерживает Prometheus, InfluxDB, PostgreSQL, MySQL, Elasticsearch и многие другие.
  • Оповещение (Alerting): Определяйте правила оповещения непосредственно в Grafana, чтобы получать уведомления о критических событиях.
  • Шаблонизация (Templating): Создавайте динамические и многократно используемые дашборды.

Предварительные условия и требования к серверу

Прежде чем приступить к установке, убедитесь, что ваш выделенный сервер Valebyte соответствует следующим требованиям:

Операционная система

Это руководство в первую очередь ориентировано на дистрибутивы Linux на базе Debian/Ubuntu, которые являются распространенным выбором для Bare Metal развертываний благодаря их стабильности и поддержке сообщества. Команды могут немного отличаться для систем на базе RHEL/CentOS, но основные концепции остаются прежними.

Ресурсы сервера

Хотя Prometheus и Grafana эффективны, они потребляют ресурсы. Для мониторинга одного Bare Metal сервера и нескольких приложений:

  • CPU: 1-2 ядра (современные многоядерные CPU идеальны).
  • RAM: 2 ГБ - 4 ГБ выделено для стека мониторинга (Prometheus может быть требователен к памяти при длительных периодах хранения или большом количестве метрик).
  • Хранилище: Рекомендуется 20 ГБ - 50 ГБ SSD для базы данных временных рядов Prometheus (TSDB). Фактическое требование сильно зависит от количества метрик, скорости их изменения и желаемого периода хранения данных. SSD критически важны для хорошей производительности TSDB.
  • Сеть: Стандартное сетевое подключение.

Доступ и привилегии

  • Root или Sudo доступ: Вам потребуются административные привилегии для установки пакетов, создания пользователей и управления системными службами.
  • SSH доступ: Доступ по Secure Shell к вашему выделенному серверу.

Настройка брандмауэра

Вам потребуется открыть определенные порты в брандмауэре вашего сервера (например, UFW на Ubuntu или firewalld на CentOS), чтобы разрешить доступ к компонентам мониторинга:

  • Prometheus: Порт 9090 (для пользовательского интерфейса Prometheus и сбора метрик).
  • Node Exporter: Порт 9100 (для метрик Node Exporter).
  • Grafana: Порт 3000 (для веб-интерфейса Grafana).
rocket_launch Быстрый выбор

Нужен выделенный сервер?

Compare prices from top providers. Configure and order in minutes.

Выделенные серверы arrow_forward

Пошаговое руководство по установке

Приступим к настройке вашего стека мониторинга.

Шаг 1: Подготовьте ваш Bare Metal сервер

Сначала обновите вашу систему и установите необходимые утилиты.


sudo apt update
sudo apt upgrade -y
sudo apt install -y wget curl gnupg2 software-properties-common

Создайте выделенных пользователей

Запуск Prometheus и Node Exporter от имени непривилегированных пользователей является лучшей практикой безопасности.


sudo useradd --no-create-home --shell /bin/false prometheus
sudo useradd --no-create-home --shell /bin/false node_exporter

Настройте брандмауэр (пример UFW)

Если вы используете UFW, включите его и разрешите необходимые порты.


sudo ufw enable
sudo ufw allow ssh
sudo ufw allow 9090/tcp   # Prometheus
sudo ufw allow 9100/tcp   # Node Exporter
sudo ufw allow 3000/tcp   # Grafana
sudo ufw status

Шаг 2: Установите Prometheus

Загрузите и извлеките Prometheus

Посетите страницу загрузки Prometheus, чтобы получить последнюю стабильную версию. При необходимости скорректируйте номер версии.


cd /tmp
wget https://github.com/prometheus/prometheus/releases/download/v2.48.0/prometheus-2.48.0.linux-amd64.tar.gz
tar xvf prometheus-2.48.0.linux-amd64.tar.gz
sudo mv prometheus-2.48.0.linux-amd64 /opt/prometheus-2.48.0

Создайте каталоги и установите разрешения


sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus
sudo cp /opt/prometheus-2.48.0/prometheus /usr/local/bin/
sudo cp /opt/prometheus-2.48.0/promtool /usr/local/bin/
sudo cp -r /opt/prometheus-2.48.0/consoles /etc/prometheus
sudo cp -r /opt/prometheus-2.48.0/console_libraries /etc/prometheus
sudo chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheus
sudo chown prometheus:prometheus /usr/local/bin/prometheus
sudo chown prometheus:prometheus /usr/local/bin/promtool

Создайте файл конфигурации Prometheus

Создайте /etc/prometheus/prometheus.yml со следующей базовой конфигурацией. Эта первоначальная настройка включает сам Prometheus в качестве цели.


sudo nano /etc/prometheus/prometheus.yml

Добавьте следующее содержимое:


global:
  scrape_interval: 15s # How frequently to scrape targets
  evaluation_interval: 15s # How frequently to evaluate rules

alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']

Создайте файл службы Systemd для Prometheus

Это позволит Prometheus работать как служба.


sudo nano /etc/systemd/system/prometheus.service

Добавьте следующее содержимое:


[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
    --config.file /etc/prometheus/prometheus.yml \
    --storage.tsdb.path /var/lib/prometheus \
    --web.console.templates=/etc/prometheus/consoles \
    --web.console.libraries=/etc/prometheus/console_libraries \
    --web.listen-address=0.0.0.0:9090 \
    --log.level=info

[Install]
WantedBy=multi-user.target

Перезагрузите Systemd, запустите и включите Prometheus


sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheus

Проверьте установку Prometheus


sudo systemctl status prometheus

Вы должны увидеть статус 'active (running)'. Вы также можете получить доступ к пользовательскому интерфейсу Prometheus в вашем веб-браузере по адресу http://YOUR_SERVER_IP:9090. Перейдите в 'Status' -> 'Targets', чтобы проверить, собирает ли Prometheus метрики с самого себя.

Шаг 3: Установите Node Exporter (для метрик сервера)

Node Exporter предоставляет широкий спектр аппаратных метрик и метрик ОС с сервера, на котором он запущен.

Загрузите и извлеките Node Exporter

Получите последнюю стабильную версию со страницы загрузки Prometheus.


cd /tmp
wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
tar xvf node_exporter-1.7.0.linux-amd64.tar.gz
sudo mv node_exporter-1.7.0.linux-amd64 /opt/node_exporter-1.7.0

Переместите бинарный файл и установите разрешения


sudo cp /opt/node_exporter-1.7.0/node_exporter /usr/local/bin/
sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter

Создайте файл службы Systemd для Node Exporter


sudo nano /etc/systemd/system/node_exporter.service

Добавьте следующее содержимое:


[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target

[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target

Перезагрузите Systemd, запустите и включите Node Exporter


sudo systemctl daemon-reload
sudo systemctl start node_exporter
sudo systemctl enable node_exporter

Проверьте установку Node Exporter


sudo systemctl status node_exporter

Вы должны увидеть статус 'active (running)'. Вы также можете проверить его метрики, посетив http://YOUR_SERVER_IP:9100/metrics в вашем браузере.

Настройте Prometheus для сбора метрик с Node Exporter

Теперь укажите Prometheus собирать метрики с Node Exporter. Отредактируйте ваш файл /etc/prometheus/prometheus.yml:


sudo nano /etc/prometheus/prometheus.yml

Добавьте новую запись scrape_configs:


scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']

  - job_name: 'node_exporter'
    static_configs:
      - targets: ['localhost:9100'] # Or YOUR_SERVER_IP:9100 if on a different machine

Сохраните файл и перезапустите Prometheus, чтобы изменения вступили в силу:


sudo systemctl restart prometheus

Убедитесь в пользовательском интерфейсе Prometheus (http://YOUR_SERVER_IP:9090 -> 'Status' -> 'Targets'), что node_exporter указан и находится в рабочем состоянии.

Шаг 4: Установите Grafana

Grafana обычно устанавливается из своего официального репозитория APT.

Добавьте GPG-ключ и репозиторий Grafana


sudo wget -q -O - https://apt.grafana.com/gpg.key | sudo gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/grafana.gpg > /dev/null
echo "deb [signed-by=/etc/apt/trusted.gpg.d/grafana.gpg] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list

Установите Grafana


sudo apt update
sudo apt install grafana -y

Запустите и включите Grafana


sudo systemctl daemon-reload
sudo systemctl start grafana-server
sudo systemctl enable grafana-server

Проверьте установку Grafana


sudo systemctl status grafana-server

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

Шаг 5: Настройте Grafana с источником данных Prometheus

Теперь подключим Grafana к вашему экземпляру Prometheus.

  1. Войдите в Grafana (по умолчанию: admin / admin). Измените пароль при появлении запроса.
  2. В левом меню наведите курсор на значок 'шестеренки' (Configuration) и нажмите 'Data Sources'.
  3. Нажмите 'Add data source'.
  4. Выберите 'Prometheus' из списка.
  5. Настройте источник данных:

    • Имя: Prometheus (или любое описательное имя).
    • URL: http://localhost:9090 (или http://YOUR_SERVER_IP:9090, если Prometheus находится на другой машине).
    • Оставьте остальные настройки по умолчанию.
  6. Нажмите 'Save & Test'. Вы должны увидеть сообщение типа 'Data source is working'.

Шаг 6: Импортируйте/Создайте дашборды Grafana

Grafana выделяется своими дашбордами. Вы можете создавать собственные или импортировать готовые шаблоны из сообщества Grafana.

Импортируйте готовый дашборд (рекомендуется для Node Exporter)

Популярный дашборд для метрик Node Exporter — это Node Exporter Full (ID: 1860).

  1. В Grafana наведите курсор на значок 'плюс' (Create) в левом меню и нажмите 'Import'.
  2. В поле 'Import via grafana.com' введите 1860 и нажмите 'Load'.
  3. Выберите ваш источник данных 'Prometheus' из выпадающего списка.
  4. Нажмите 'Import'.

Теперь вы должны увидеть комплексный дашборд, отображающий использование CPU, памяти, дискового ввода-вывода (disk I/O), сетевого трафика и многое другое вашего Bare Metal сервера!

Создание пользовательских дашбордов

Для специфического мониторинга приложений или уникальных случаев использования (например, количество игроков на игровом сервере, частота запросов к базе данных) вы можете создавать пользовательские дашборды:

  1. Нажмите значок 'плюс' (Create) и выберите 'Dashboard'.
  2. Нажмите 'Add new panel'.
  3. Выберите ваш источник данных Prometheus.
  4. Используйте PromQL (Prometheus Query Language) для запроса ваших метрик (например, node_cpu_seconds_total, node_memory_MemFree_bytes).
  5. Выберите тип визуализации (Graph, Stat, Gauge и т.д.).
  6. Настройте заголовки, единицы измерения и параметры отображения.

Расширенная конфигурация и лучшие практики

Оповещение с помощью Alertmanager

Хотя Grafana предлагает базовое оповещение, Alertmanager Prometheus разработан для более сложной маршрутизации, группировки и дедупликации оповещений. Для критически важной Bare Metal инфраструктуры настоятельно рекомендуется настроить Alertmanager для отправки уведомлений по электронной почте, в Slack, PagerDuty или через другие каналы.

Соображения безопасности

  • Брандмауэр: По возможности ограничьте доступ к портам Prometheus (9090), Node Exporter (9100) и Grafana (3000) доверенными IP-адресами или вашей внутренней сетью.
  • TLS/SSL: Защитите Grafana с помощью HTTPS, особенно если она общедоступна. Вы можете использовать обратный прокси, такой как Nginx или Apache, с Let's Encrypt.
  • Надежные пароли: Немедленно измените учетные данные Grafana по умолчанию.
  • Выделенные пользователи: Как реализовано, запуск служб от имени непривилегированных пользователей повышает безопасность.

Соображения по хранению данных

Prometheus хранит данные локально в своей TSDB. Учтите:

  • Срок хранения (Retention): Срок хранения по умолчанию составляет 15 дней. Отрегулируйте --storage.tsdb.retention.time (например, --storage.tsdb.retention.time=30d) или --storage.tsdb.retention.size (например, --storage.tsdb.retention.size=50GB) в вашем файле prometheus.service. Более длительный срок хранения требует больше дискового пространства.
  • Тип диска: SSD настоятельно рекомендуются для каталога данных Prometheus (/var/lib/prometheus) из-за их высокой производительности ввода-вывода.

Мониторинг нескольких серверов

Для мониторинга дополнительных Bare Metal серверов просто установите Node Exporter на каждый сервер и настройте ваш центральный экземпляр Prometheus для сбора метрик с их соответствующих конечных точек :9100. Обновите ваш prometheus.yml:


  - job_name: 'additional_servers'
    static_configs:
      - targets: ['server2_ip:9100', 'server3_ip:9100']

Реальные сценарии использования мониторинга

  • Игровые серверы: Отслеживайте загрузку CPU, задержку сети и использование памяти для обеспечения плавного игрового процесса. Мониторьте специфические метрики игровых серверов через пользовательские экспортеры.
  • Веб-хостинг: Наблюдайте за метриками веб-сервера (Nginx/Apache), производительностью базы данных (MySQL/PostgreSQL) и временем отклика приложений для высоконагруженных веб-сайтов.
  • Базы данных: Мониторьте частоту запросов, количество подключений, дисковый ввод-вывод (disk I/O) и использование буферного пула для оптимального состояния и производительности базы данных.
  • Почтовые серверы: Следите за размером очереди почты, входящим/исходящим трафиком и потреблением ресурсов для предотвращения проблем с доставкой.
  • Стриминговые сервисы: Мониторьте использование пропускной способности, загрузку CPU во время кодирования/транскодирования и производительность хранилища.
  • CI/CD-конвейеры: Отслеживайте использование ресурсов агентами сборки, время выполнения задач и общее состояние конвейера для выявления узких мест.

Устранение распространенных проблем

Prometheus не запускается или не собирает метрики

  • Ошибки конфигурации: Используйте promtool check config /etc/prometheus/prometheus.yml для проверки вашего файла конфигурации Prometheus.
  • Конфликты портов: Убедитесь, что порт 9090 не используется другим приложением. Проверьте логи с помощью sudo journalctl -u prometheus.service.
  • Разрешения: Убедитесь, что пользователь prometheus имеет доступ на чтение к /etc/prometheus/prometheus.yml и доступ на запись к /var/lib/prometheus.
  • Брандмауэр: Убедитесь, что порт 9090 открыт.

Node Exporter недоступен

  • Статус службы: Проверьте, запущен ли Node Exporter: sudo systemctl status node_exporter.
  • Брандмауэр: Убедитесь, что порт 9100 открыт на сервере, где запущен Node Exporter.
  • Конфигурация Prometheus: Дважды проверьте IP/имя хоста цели и порт в prometheus.yml.
  • Логи: Просмотрите sudo journalctl -u node_exporter.service на наличие ошибок.

Проблемы с подключением источника данных Grafana

  • Статус Prometheus: Убедитесь, что Prometheus запущен и доступен с сервера, на котором размещена Grafana (если они разделены).
  • Брандмауэр: Убедитесь, что порт 9090 открыт с точки зрения Grafana.
  • Корректность URL: Убедитесь, что URL Prometheus в конфигурации источника данных Grafana верен (например, http://localhost:9090).

Отсутствующие метрики в Grafana

  • Цели Prometheus: Проверьте пользовательский интерфейс Prometheus (Status -> Targets), чтобы убедиться, что все ожидаемые цели (Prometheus, Node Exporter) активны и здоровы.
  • Запрос PromQL: Убедитесь, что ваши запросы PromQL в Grafana верны и нацелены на метрики, которые вы ожидаете. Сначала используйте интерфейс 'Graph' пользовательского интерфейса Prometheus для тестирования запросов.
  • Временной диапазон: Убедитесь, что временной диапазон вашего дашборда Grafana охватывает период, когда данные должны быть доступны.

Ошибки разрешений

Если вы столкнулись с ошибками отказа в доступе во время установки или при запуске служб, дважды проверьте, что файлы и каталоги имеют правильного владельца (например, prometheus:prometheus для файлов Prometheus, node_exporter:node_exporter для Node Exporter) и соответствующие разрешения на чтение/запись.

check_circle Заключение

Настройка Prometheus и Grafana на вашем выделенном сервере Valebyte предоставляет вам мощное решение для мониторинга в реальном времени. Этот стек обеспечивает глубокую видимость, необходимую для поддержания оптимальной производительности, предвидения проблем и обеспечения надежности ваших критически важных приложений, от игровых серверов до сложных веб-инфраструктур. Воспользуйтесь мощью мониторинга на "голом железе" и возьмите полный контроль над судьбой вашего сервера. Изучите варианты выделенных серверов Valebyte, чтобы найти идеальную основу для ваших высокопроизводительных потребностей в мониторинге.

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

Был ли этот гайд полезен?

Ваш отзыв помогает нам улучшать гайды.

Поделиться записью:

Отправьте гайд тому, кому он может пригодиться.

Telegram VKVK WhatsApp Facebook LinkedIn XX

мониторинг выделенного сервера Prometheus Grafana на голое железо мониторинг производительности сервера инструкция по настройке Prometheus Grafana на голое железо установка Node Exporter мониторинг Linux сервера оптимизация выделенного сервера мониторинг веб-хостинга мониторинг игрового сервера
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.