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

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

Мониторинг Bare Metal: Prometheus и Grafana – Гайд по настройке

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

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

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

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

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

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

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

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

Prometheus и Grafana образуют грозный дуэт для этой задачи, предоставляя гибкое, масштабируемое и легко настраиваемое решение для мониторинга, идеально подходящее для необузданной мощи bare-metal инфраструктуры.

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

Prometheus: Мощный инструмент для метрик

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

  • Многомерная модель данных: Данные временных рядов, идентифицируемые по имени метрики и парам ключ/значение.
  • Гибкий язык запросов (PromQL): Позволяет выполнять мощные специальные запросы и агрегацию данных временных рядов.
  • Модель извлечения (Pull Model): Prometheus извлекает метрики из инструментированных задач, а не получает их.
  • Обнаружение сервисов (Service Discovery): Интегрируется с различными системами для автоматического обнаружения целей.
  • Оповещения (Alerting): Отправляет уведомления через Alertmanager.

Grafana: Мастер визуализации

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

  • Создавать динамические дашборды: Создавайте красивые и интерактивные дашборды с широким спектром опций визуализации.
  • Исследовать данные: Детализируйте ваши метрики с помощью мощных редакторов запросов.
  • Настраивать оповещения: Настраивайте оповещения на основе ваших метрик и получайте уведомления.
  • Сотрудничать: Делитесь дашбордами и позволяйте командам эффективно отслеживать свои приложения.

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

Прежде чем мы начнем, убедитесь, что у вас есть следующее:

  • Выделенный сервер Valebyte: Это руководство предполагает, что вы работаете с bare-metal сервером, на котором установлена свежая версия Ubuntu 20.04+ или Debian 11+. Шаги в значительной степени аналогичны для CentOS/RHEL, с незначительными корректировками для управления пакетами (yum/dnf вместо apt).
  • Root или Sudo доступ: Вам потребуются административные привилегии для установки программного обеспечения и настройки служб.
  • Базовое знакомство с командной строкой Linux: Уверенное перемещение по каталогам, редактирование файлов и выполнение команд.
  • Открытые порты: Убедитесь, что следующие порты открыты в брандмауэре вашего сервера (например, UFW или iptables) для обеспечения внешнего доступа (при необходимости) и внутренней связи:
    • 9090 (Prometheus): Для веб-интерфейса Prometheus и сбора метрик.
    • 9100 (Node Exporter): Для Node Exporter, чтобы предоставлять метрики хоста.
    • 3000 (Grafana): Для веб-интерфейса Grafana.

Пример настройки брандмауэра (UFW на Ubuntu/Debian):


sudo ufw allow 9090/tcp
sudo ufw allow 9100/tcp
sudo ufw allow 3000/tcp
sudo ufw enable
sudo ufw status
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 apt-transport-https

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

Мы установим Prometheus из его официальных бинарных файлов. Рекомендуется создать выделенного пользователя для Prometheus из соображений безопасности.

2.1 Создайте пользователя и каталоги Prometheus


sudo useradd --no-create-home --shell /bin/false prometheus
sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus
sudo chown prometheus:prometheus /var/lib/prometheus

2.2 Загрузите и извлеките бинарные файлы Prometheus

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


cd /tmp
wget https://github.com/prometheus/prometheus/releases/download/v2.47.0/prometheus-2.47.0.linux-amd64.tar.gz
tar xvf prometheus-2.47.0.linux-amd64.tar.gz
cd prometheus-2.47.0.linux-amd64

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


sudo mv prometheus /usr/local/bin/
sudo mv promtool /usr/local/bin/
sudo chown prometheus:prometheus /usr/local/bin/prometheus
sudo chown prometheus:prometheus /usr/local/bin/promtool
sudo mv consoles /etc/prometheus
sudo mv console_libraries /etc/prometheus
sudo chown -R prometheus:prometheus /etc/prometheus/consoles
sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries

2.4 Настройте Prometheus

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


sudo nano /etc/prometheus/prometheus.yml

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


global:
  scrape_interval: 15s # Как часто собирать метрики с целей

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

Установите соответствующие разрешения для файла конфигурации:


sudo chown prometheus:prometheus /etc/prometheus/prometheus.yml

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

Создайте файл службы systemd для управления процессом Prometheus.


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

Добавьте следующее:


[Unit]
Description=Prometheus Monitoring System
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
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target

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


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

2.7 Проверьте статус Prometheus

Проверьте, запущен ли Prometheus:


sudo systemctl status prometheus

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

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

Node Exporter собирает метрики уровня хоста (ЦП, память, дисковый ввод/вывод, сетевой ввод/вывод и т. д.) и предоставляет их в формате, который Prometheus может собирать.

3.1 Создайте пользователя и каталоги Node Exporter


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

3.2 Загрузите и извлеките бинарные файлы Node Exporter

Проверьте страницу загрузки Prometheus для получения последней версии Node Exporter.


cd /tmp
wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz
tar xvf node_exporter-1.6.1.linux-amd64.tar.gz
cd node_exporter-1.6.1.linux-amd64

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


sudo mv node_exporter /usr/local/bin/
sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter

3.4 Создайте службу 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 \
    --web.listen-address=0.0.0.0:9100

[Install]
WantedBy=multi-user.target

3.5 Запустите и включите Node Exporter


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

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


sudo systemctl status node_exporter

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

3.7 Добавьте Node Exporter в конфигурацию Prometheus

Теперь сообщите Prometheus, чтобы он собирал метрики с Node Exporter. Отредактируйте /etc/prometheus/prometheus.yml:


sudo nano /etc/prometheus/prometheus.yml

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


global:
  scrape_interval: 15s

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

  - job_name: 'node_exporter'
    static_configs:
      - targets: ['localhost:9100']

Сохраните и выйдите. Затем перезагрузите Prometheus, чтобы применить новую конфигурацию:


sudo systemctl reload prometheus

Перейдите в веб-интерфейс Prometheus (http://YOUR_SERVER_IP:9090) и проверьте 'Status' -> 'Targets'. Теперь вы должны увидеть цели 'prometheus' и 'node_exporter', перечисленные как 'UP'.

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

Мы установим Grafana, используя ее официальный репозиторий APT для удобства обновлений.

4.1 Добавьте репозиторий Grafana APT


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 update

4.2 Установите Grafana


sudo apt install -y grafana

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


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

4.4 Проверьте статус Grafana


sudo systemctl status grafana-server

Вы должны увидеть статус 'active (running)'.

4.5 Доступ к веб-интерфейсу Grafana

Откройте ваш веб-браузер и перейдите по адресу http://YOUR_SERVER_IP:3000. Учетные данные для входа по умолчанию:

  • Имя пользователя: admin
  • Пароль: admin

Вам будет предложено изменить пароль по умолчанию при первом входе. Сделайте это немедленно из соображений безопасности.

Шаг 5: Настройте Grafana с Prometheus

5.1 Добавьте Prometheus как источник данных

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

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

5.2 Импортируйте дашборд Node Exporter

Сила Grafana заключается в ее дашбордах. Отличный способ начать — импортировать готовый дашборд с сайта сообщества Grafana.

  1. Перейдите в левое меню Grafana, наведите курсор на значок '+' (Create) и нажмите 'Import'.
  2. В поле 'Import via grafana.com' введите 1860 (это популярный ID дашборда Node Exporter Full).
  3. Нажмите 'Load'.
  4. На следующем экране:

    • Имя: Node Exporter Full (или аналогичное)
    • Папка: Выберите папку или оставьте 'General'.
    • Prometheus: Выберите только что созданный источник данных Prometheus.
  5. Нажмите 'Import'.

Теперь вы должны увидеть комплексный дашборд, отображающий использование ЦП, памяти, дискового ввода/вывода, сетевого трафика и многое другое вашего bare metal сервера, все это собрано Node Exporter и визуализировано Grafana. Изучите панели, измените временные диапазоны и получите представление о производительности вашего сервера.

Практические советы для пользователей выделенных серверов

Помимо базовой настройки, вот как максимально эффективно использовать мониторинг на выделенных серверах Valebyte:

  • Настраивайте дашборды: Хотя готовые дашборды великолепны, адаптируйте их под ваши конкретные приложения и сервисы, работающие на вашем выделенном сервере. Сосредоточьтесь на метриках, наиболее важных для вашей рабочей нагрузки (например, время выполнения запросов к базе данных, частота запросов к веб-серверу, частота тиков игрового сервера).
  • Настраивайте оповещения: Настройте оповещения в Grafana (или Prometheus с Alertmanager) для критических пороговых значений. Примеры включают высокую загрузку ЦП, низкое свободное место на диске, чрезмерное потребление памяти или насыщение сети. Интегрируйте оповещения с каналами связи, такими как электронная почта, Slack или PagerDuty.
  • Мониторинг приложений: Установите специальные экспортеры Prometheus для приложений, работающих на вашем сервере. Примеры включают:
    • Nginx/Apache Exporter: Для метрик веб-сервера.
    • MySQL/PostgreSQL Exporter: Для производительности базы данных.
    • Redis Exporter: Для метрик сервера кэширования.
    • Custom Application Exporters: Если ваше приложение предоставляет метрики в формате Prometheus.
  • Лучшие практики безопасности:
    • Поддерживайте Prometheus и Grafana в актуальном состоянии.
    • Ограничьте доступ к пользовательским интерфейсам Prometheus и Grafana с помощью брандмауэра. Рассмотрите возможность размещения их за обратным прокси (например, Nginx) с базовой аутентификацией или клиентскими сертификатами для внешнего доступа.
    • Немедленно измените пароли Grafana по умолчанию.
  • Управление дисковым пространством: Prometheus хранит данные метрик на диске. Мониторьте /var/lib/prometheus и настройте политики хранения в prometheus.yml (--storage.tsdb.retention.time или --storage.tsdb.retention.size), чтобы предотвратить потребление всего доступного хранилища на вашем выделенном сервере.

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

Информация, полученная с помощью вашей установки Prometheus + Grafana, бесценна для различных приложений выделенных серверов:

  • Игровые серверы: Мониторинг использования ЦП, оперативной памяти, задержки сети и потери пакетов для обеспечения плавной игры. Обнаружение DDoS-атак или потребителей ресурсов в реальном времени.
  • Высоконагруженный веб-хостинг: Отслеживание времени отклика веб-сервера, частоты ошибок, одновременных подключений и потребления ресурсов (ЦП, память, дисковый ввод/вывод) для поддержания оптимальной производительности и доступности веб-сайта.
  • Серверы баз данных: Отслеживание производительности запросов, количества подключений, дискового ввода/вывода, коэффициентов попадания в кэш и статуса репликации для предотвращения замедлений и несогласованности данных.
  • Почтовые серверы: Мониторинг размеров очередей, входящего/исходящего трафика, частоты обнаружения спама и использования ресурсов для обеспечения надежной доставки электронной почты и предотвращения попадания в черные списки.
  • Стриминговые платформы: Наблюдение за использованием пропускной способности, количеством одновременных зрителей, нагрузкой на сервер и производительностью транскодирования для обеспечения бесперебойного стриминга.
  • Конвейеры CI/CD: Отслеживание времени сборки, потребления ресурсов во время сборок, времени выполнения тестов и успешности развертывания для оптимизации рабочих процессов разработки и инфраструктуры.
  • Обработка больших данных: Мониторинг использования ресурсов для кластеров Hadoop, Spark или других кластеров больших данных для обеспечения эффективного выполнения задач и распределения ресурсов.
rocket_launch Быстрый выбор

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

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

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

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

1. Служба не запускается (Prometheus/Node Exporter/Grafana)

Симптом: systemctl status <service_name> показывает 'failed' или 'inactive'.

Решение:

  • Проверьте логи: Используйте journalctl -u <service_name> -f для просмотра логов в реальном времени на наличие ошибок.
  • Ошибки конфигурации: Для Prometheus запустите promtool check config /etc/prometheus/prometheus.yml. Для Grafana проверьте /etc/grafana/grafana.ini на наличие синтаксических ошибок.
  • Разрешения: Убедитесь, что пользователь (prometheus, node_exporter, grafana) имеет разрешения на чтение/запись в соответствующие каталоги (например, /var/lib/prometheus, /etc/prometheus).
  • Конфликты портов: Убедитесь, что никакая другая служба уже не прослушивает требуемые порты (9090, 9100, 3000). Используйте sudo netstat -tulpn | grep <port>.

2. Метрики не появляются в Prometheus

Симптом: 'Status' -> 'Targets' в пользовательском интерфейсе Prometheus показывает цель как 'DOWN' или 'N/A'.

Решение:

  • Брандмауэр: Убедитесь, что брандмауэр на сервере Prometheus и на целевом сервере (если они разные) разрешает трафик на порт экспортера (например, 9100 для Node Exporter).
  • Работающий экспортер: Убедитесь, что служба экспортера (например, node_exporter) запущена на целевом сервере.
  • Конфигурация Prometheus: Дважды проверьте /etc/prometheus/prometheus.yml на предмет правильных IP-адресов/имен хостов и номеров портов. Убедитесь в правильном отступе (YAML чувствителен к нему).
  • Доступность: С сервера Prometheus попробуйте выполнить curl http://<target_ip>:<exporter_port>/metrics. Вы должны увидеть вывод метрик.

3. Дашборд Grafana не отображает данные

Симптом: Панели дашборда показывают 'No Data' или ошибки.

Решение:

  • Источник данных Prometheus: В Grafana перейдите в 'Configuration' -> 'Data sources' и убедитесь, что ваш источник данных Prometheus настроен правильно и 'Save & test' проходит успешно.
  • Функционирование Prometheus: Убедитесь, что сам Prometheus запущен и успешно собирает метрики с целей (проверьте его веб-интерфейс по адресу http://YOUR_SERVER_IP:9090).
  • Синтаксис запросов: Если вы создаете пользовательские панели, убедитесь, что ваши запросы PromQL верны. Сначала используйте вкладку 'Graph' в пользовательском интерфейсе Prometheus для тестирования запросов.
  • Временной диапазон: Убедитесь, что временной диапазон, выбранный в Grafana (вверху справа), охватывает период, для которого вы ожидаете данные.

4. Высокое использование диска Prometheus

Симптом: Каталог /var/lib/prometheus становится очень большим.

Решение:

  • Настройте политику хранения: Отредактируйте файл prometheus.service. Добавьте --storage.tsdb.retention.time=<duration> (например, 30d для 30 дней) или --storage.tsdb.retention.size=<size> (например, 100GB) в строку ExecStart. Перезагрузите и перезапустите Prometheus.
  • Уменьшите интервал сбора: Для менее критичных метрик увеличьте scrape_interval в prometheus.yml.
  • Фильтруйте метрики: Используйте relabel_configs в prometheus.yml для отбрасывания ненужных метрик перед приемом, что снижает потребности в хранилище.

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

check_circle Заключение

Внедрение надежного решения для мониторинга с Prometheus и Grafana на вашем выделенном сервере Valebyte предоставляет вам беспрецедентную видимость вашей инфраструктуры. От понимания использования ресурсов до проактивного решения проблем, эта настройка гарантирует безупречную работу ваших критически важных приложений. Используйте весь потенциал вашей bare-metal среды с комплексным мониторингом, что приводит к оптимизированной производительности, повышенной надежности и превосходному пользовательскому опыту. Готовы взять под контроль? Изучите ассортимент мощных выделенных серверов Valebyte сегодня и постройте свою отказоустойчивую инфраструктуру.

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

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

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

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

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

Telegram VKVK WhatsApp Facebook LinkedIn XX

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