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

Отримати VPS arrow_forward
eco Початковий Туторіал

Моніторинг Bare Metal: Prometheus та Grafana Туторіал

calendar_month Jul 25, 2026 schedule 11 хв. читання visibility 10 переглядів
info

Потрібен сервер для цього гайду? Ми пропонуємо виділені сервери та VPS у 50+ країнах з миттєвим налаштуванням.

Оптимізація та підтримка пікової продуктивності вашого виділеного сервера є надзвичайно важливою, а ефективний моніторинг є основою цього починання. Цей вичерпний посібник проведе вас через налаштування потужного стеку моніторингу з відкритим вихідним кодом, що включає Prometheus для збору даних та Grafana для приголомшливих візуалізацій та сповіщень на вашій bare metal інфраструктурі. Отримайте неперевершені відомості про стан вашого сервера, використання ресурсів та загальну продуктивність.

Потрібен сервер для цього гайду?

Розгорніть VPS або виділений сервер за хвилини.

Навіщо моніторити ваш Bare Metal сервер?

Виділені сервери пропонують неперевершену потужність, контроль і продуктивність, але з великою потужністю приходить відповідальність за пильний нагляд. Моніторинг вашого bare metal сервера за допомогою таких інструментів, як Prometheus і Grafana, — це не просто найкраща практика; це необхідно для:

  • Проактивне вирішення проблем: Виявляйте аномалії, вузькі місця в ресурсах і потенційні апаратні збої до того, як вони вплинуть на ваші сервіси.
  • Оптимізація продуктивності: Розумійте закономірності використання CPU, RAM, дискового вводу/виводу та мережі, щоб точно налаштувати програми та інфраструктуру.
  • Управління ресурсами: Точно оцінюйте, чи відповідають поточні специфікації вашого сервера попиту, або чи потрібне оновлення.
  • Надійність та безперебійна робота (Uptime): Переконайтеся, що ваші критично важливі програми, будь то ігрові сервери, високотрафікові веб-сайти, бази даних або CI/CD конвеєри, залишаються працездатними та чуйними.
  • Планування потужності: Збирайте історичні дані для прийняття обґрунтованих рішень щодо майбутнього масштабування інфраструктури.

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

Розуміння Prometheus та Grafana

Prometheus і Grafana — це динамічний дует у світі моніторингу з відкритим вихідним кодом. Вони розроблені для бездоганної спільної роботи, кожен з яких відмінно справляється зі своєю специфічною областю:

Prometheus: Збирач даних та часова база даних (Time-Series Database)

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

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

Grafana: Потужний інструмент візуалізації та дашбордів

Grafana — це веб-додаток з відкритим вихідним кодом для аналітики та інтерактивної візуалізації. Він дозволяє запитувати, візуалізувати, сповіщати та досліджувати ваші метрики незалежно від того, де вони зберігаються. У поєднанні з Prometheus Grafana перетворює необроблені дані на інтуїтивно зрозумілі, дієві дашборди.

  • Багаті дашборди: Створюйте власні дашборди з широким спектром опцій візуалізації (графіки, таблиці, теплові карти, окремі показники).
  • Кілька джерел даних: Підтримує Prometheus, InfluxDB, PostgreSQL, MySQL, Elasticsearch та багато інших.
  • Сповіщення: Визначайте правила сповіщень безпосередньо в Grafana, щоб повідомляти вас про критичні події.
  • Шаблонизація: Створюйте динамічні та багаторазові дашборди.

Передумови та вимоги до сервера

Перш ніж приступити до встановлення, переконайтеся, що ваш виділений сервер 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, пам'яті, дискового вводу/виводу, мережевого трафіку вашого 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. Розгляньте:

  • Зберігання: Термін зберігання за замовчуванням становить 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) та часом відгуку програм для високотрафікових веб-сайтів.
  • Бази даних: Моніторте швидкість запитів, кількість з'єднань, дисковий ввід/вивід та використання буферного пулу для оптимального стану та продуктивності бази даних.
  • Поштові сервери: Слідкуйте за розміром черги пошти, вхідним/вихідним трафіком та споживанням ресурсів, щоб запобігти проблемам з доставкою.
  • Стримінгові сервіси: Моніторте використання пропускної здатності, завантаження 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 UI для тестування запитів.
  • Діапазон часу: Переконайтеся, що діапазон часу вашого дашборда Grafana охоплює період, коли дані мають бути доступними.

Помилки дозволів

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

check_circle Висновок

Налаштування Prometheus і Grafana на вашому виділеному сервері Valebyte надає вам надійне рішення для моніторингу в реальному часі. Цей стек забезпечує глибоку видимість, необхідну для підтримки оптимальної продуктивності, передбачення проблем та забезпечення надійності ваших критично важливих програм, від ігрових серверів до складних веб-інфраструктур. Оцініть потужність моніторингу на голому залізі та візьміть повний контроль над долею вашого сервера. Ознайомтеся з варіантами виділених серверів Valebyte, щоб знайти ідеальну основу для ваших потреб у високопродуктивному моніторингу.

help Часті запитання

Чи був цей гайд корисним?

Ваш відгук допомагає нам покращувати гайди.

Share this post:

Надішліть гайд тому, кому він може стати в пригоді.

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.