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

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

Prometheus та Grafana: Посібник з моніторингу Bare Metal серверів

calendar_month Jun 21, 2026 schedule 11 хв. читання visibility 14 переглядів
Prometheus & Grafana: Bare Metal Server Monitoring Guide
info

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

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

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

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

Чому моніторинг виділеного сервера має значення

Виділені сервери від Valebyte пропонують неперевершену продуктивність, безпеку та можливості налаштування. Однак, з великою потужністю приходить і потреба в проактивному управлінні. Без надійного моніторингу ви працюєте наосліп, вразливі до несподіваних збоїв, вузьких місць у продуктивності та вичерпання ресурсів. Аналітика в реальному часі щодо вашого CPU, пам'яті, дискового I/O, мережевого трафіку та метрик додатків є критично важливою для:

  • Запобігання простоям: Виявляйте та вирішуйте проблеми до того, як вони переростуть у перебої в роботі сервісів.
  • Оптимізація продуктивності: Визначайте ресурсоємні процеси та вузькі місця, щоб ваші додатки працювали з максимальною ефективністю.
  • Планування потужностей: Розумійте тенденції використання ресурсів, щоб приймати обґрунтовані рішення щодо масштабування вашої інфраструктури.
  • Вирішення проблем: Швидко діагностуйте першопричину проблем за допомогою історичних даних та детальних метрик.
  • Безпека: Відстежуйте незвичайну активність або стрибки ресурсів, які можуть свідчити про порушення безпеки.

Незалежно від того, чи запускаєте ви високонавантажені веб-додатки, вимогливий ігровий сервер, складні бази даних, потокові сервіси або CI/CD конвеєри, добре реалізоване рішення для моніторингу є вашою першою лінією захисту та ключем до операційної досконалості.

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

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

Prometheus: Збирач метрик

Prometheus – це інструментарій для моніторингу та оповіщення систем з відкритим вихідним кодом, спочатку розроблений у SoundCloud. Він розроблений для надійності та масштабованості, що робить його ідеальним для bare metal середовищ. Ключові особливості включають:

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

Для bare metal моніторингу Prometheus зазвичай збирає метрики з 'експортерів'. Найпоширенішим експортером для метрик на рівні хоста є Node Exporter.

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

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

  • Створювати динамічні дашборди: Створюйте високоіндивідуальні дашборди з різними типами панелей (графіки, окремі показники, таблиці, теплові карти тощо).
  • Досліджувати дані: Заглиблюйтесь у метрики за допомогою потужних конструкторів запитів.
  • Налаштовувати сповіщення: Налаштовуйте сповіщення безпосередньо з ваших дашбордів на основі порогових значень метрик.
  • Співпрацювати: Діліться дашбордами та дозволяйте членам команди переглядати або редагувати їх.

Передумови для моніторингу Bare Metal

Перш ніж зануритися в установку, переконайтеся, що у вас є наступне:

  • Виділений сервер від Valebyte: З root або sudo привілеями. Цей посібник передбачає сервер Ubuntu 22.04 LTS, але кроки в основному схожі для інших дистрибутивів на базі Debian.
  • Базові знання командного рядка Linux: Знайомство з командами, такими як cd, mkdir, cp, wget, tar, systemctl.
  • Підключення до Інтернету: Для завантаження необхідних пакетів та бінарних файлів.
  • Налаштування брандмауера: Вам потрібно буде відкрити певні порти. Ми будемо використовувати UFW (Uncomplicated Firewall) як приклад.
  • Необхідні порти:
    • Prometheus: Порт за замовчуванням 9090 (для веб-інтерфейсу)
    • Node Exporter: Порт за замовчуванням 9100 (для метрик)
    • Grafana: Порт за замовчуванням 3000 (для веб-інтерфейсу)

Спочатку оновіть список пакетів вашої системи:

sudo apt update
sudo apt upgrade -y

Встановіть curl та wget, якщо вони ще не встановлені, оскільки вони корисні для завантаження файлів:

sudo apt install -y curl wget
rocket_launch Швидкий вибір

Need a dedicated server?

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

Виділені сервери arrow_forward

Покроковий посібник з встановлення

Для простоти ми встановимо Prometheus, Node Exporter та Grafana на одному виділеному сервері. Для більших розгортань ви можете запускати Node Exporter на кількох серверах, а Prometheus/Grafana – на окремому сервері моніторингу.

1. Налаштування Prometheus

Створіть користувача Prometheus та каталоги

Для дотримання найкращих практик безпеки запускайте 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

Завантажте та встановіть Prometheus

Відвідайте сторінку завантаження Prometheus, щоб отримати останню стабільну версію. На момент написання ми будемо використовувати версію-заповнювач.

# Check for the latest version on the Prometheus download page
PROMETHEUS_VERSION="2.48.0" # Replace with the latest stable version

wget https://github.com/prometheus/prometheus/releases/download/v${PROMETHEUS_VERSION}/prometheus-${PROMETHEUS_VERSION}.linux-amd64.tar.gz
tar xvf prometheus-${PROMETHEUS_VERSION}.linux-amd64.tar.gz
cd prometheus-${PROMETHEUS_VERSION}.linux-amd64

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 cp -r consoles /etc/prometheus
sudo cp -r console_libraries /etc/prometheus

Налаштуйте Prometheus

Створіть файл конфігурації Prometheus /etc/prometheus/prometheus.yml. Наразі ми почнемо з базової конфігурації.

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

Створіть службу 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

[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)'. Ви також можете перевірити логи:

sudo journalctl -u prometheus -f

2. Налаштування Node Exporter

Node Exporter надає широкий спектр метрик апаратного забезпечення та ОС (CPU, пам'ять, дисковий I/O, мережева статистика тощо) із сервера, на якому він працює.

Створіть користувача Node Exporter та каталоги

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

Завантажте та встановіть Node Exporter

Відвідайте сторінку завантаження Prometheus, щоб отримати останню версію Node Exporter.

# Check for the latest version on the Prometheus download page
NODE_EXPORTER_VERSION="1.7.0" # Replace with the latest stable version

wget https://github.com/prometheus/node_exporter/releases/download/v${NODE_EXPORTER_VERSION}/node_exporter-${NODE_EXPORTER_VERSION}.linux-amd64.tar.gz
tar xvf node_exporter-${NODE_EXPORTER_VERSION}.linux-amd64.tar.gz
cd node_exporter-${NODE_EXPORTER_VERSION}.linux-amd64

sudo mv 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)'. Ви також можете перевірити метрики безпосередньо з вашого сервера:

curl http://localhost:9100/metrics

Це виведе велику кількість метрик у вигляді простого тексту.

3. Налаштування Grafana

Встановіть Grafana

Grafana надає офіційні репозиторії APT для легкої установки.

sudo apt install -y apt-transport-https software-properties-common wget
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

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)'.

4. Налаштування брандмауера (UFW)

Щоб отримати доступ до веб-інтерфейсів Prometheus та Grafana, вам потрібно відкрити відповідні порти у вашому брандмауері. Припускаючи, що UFW увімкнено:

sudo ufw allow 9090/tcp comment 'Allow Prometheus Web UI'
sudo ufw allow 9100/tcp comment 'Allow Node Exporter Metrics'
sudo ufw allow 3000/tcp comment 'Allow Grafana Web UI'
sudo ufw reload

Якщо у вас увімкнено SSH (що має бути), переконайтеся, що порт 22 також відкритий: sudo ufw allow 22/tcp.

Налаштування Prometheus для збору метрик з Node Exporter

Тепер, коли Node Exporter працює та надає метрики, нам потрібно вказати Prometheus збирати їх. Відредагуйте файл конфігурації Prometheus:

sudo nano /etc/prometheus/prometheus.yml

Додайте новий job_name у розділ scrape_configs для Node Exporter. Оскільки Node Exporter знаходиться на тому ж сервері, ми будемо використовувати localhost:9100.

global:
  scrape_interval: 15s

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

  - job_name: 'node_exporter'
    static_configs:
      - targets: ['localhost:9100'] # Or replace localhost with the IP of your target server

Збережіть та вийдіть з файлу. Потім перезапустіть Prometheus, щоб застосувати зміни:

sudo systemctl restart prometheus

Налаштування джерела даних та дашборду Grafana

1. Доступ до веб-інтерфейсу Grafana

Відкрийте веб-браузер і перейдіть за адресою http://YOUR_SERVER_IP:3000. Ви повинні побачити сторінку входу Grafana.

Стандартні облікові дані для входу:

  • Ім'я користувача: admin
  • Пароль: admin

Вам буде запропоновано негайно змінити стандартний пароль. Виберіть надійний, безпечний пароль.

2. Додайте Prometheus як джерело даних

  1. У лівому меню наведіть курсор на значок шестерні (Configuration) і натисніть Data sources.
  2. Натисніть Add data source.
  3. Знайдіть та виберіть Prometheus.
  4. У розділі 'HTTP' встановіть 'URL' на http://localhost:9090 (оскільки Prometheus знаходиться на тому ж сервері).
  5. Прокрутіть вниз і натисніть Save & test. Ви повинні побачити повідомлення, що підтверджує "Data source is working."

3. Імпорт дашборду Node Exporter

Сила Grafana полягає в її великій бібліотеці дашбордів, створених спільнотою. Популярний дашборд для метрик Node Exporter – це Node Exporter Full (ID 1860).

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

Тепер ви повинні побачити комплексний дашборд, що відображає різні метрики з вашого виділеного сервера, включаючи використання CPU, пам'яті, дискового I/O, мережевого трафіку та багато іншого!

rocket_launch Швидкий вибір

Need a dedicated server?

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

Виділені сервери arrow_forward

Тестування налаштування моніторингу

Щоб переконатися, що все працює належним чином:

  • Інтерфейс Prometheus: Перейдіть за адресою http://YOUR_SERVER_IP:9090. Натисніть 'Status' -> 'Targets'. Ви повинні побачити цілі 'prometheus' та 'node_exporter' зі статусом 'UP'. Якщо ні, перевірте логи та конфігурацію Prometheus.
  • Метрики Node Exporter: Відкрийте http://YOUR_SERVER_IP:9100/metrics у вашому браузері. Ви повинні побачити сторінку, повну необроблених метрик.
  • Дашборд Grafana: Взаємодійте з дашбордом Node Exporter Full. Змінюйте часові діапазони, спостерігайте за даними в реальному часі та переконайтеся, що всі панелі відображають дані правильно.

Розширені міркування щодо моніторингу

Оповіщення за допомогою Alertmanager

Хоча цей посібник зосереджений на базовому налаштуванні, повне рішення для моніторингу включає оповіщення. Alertmanager Prometheus обробляє сповіщення, надіслані клієнтськими програмами, групуючи, дедуплікуючи та направляючи їх до каналів сповіщень, таких як електронна пошта, Slack, PagerDuty тощо.

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

Щоб моніторити кілька виділених серверів Valebyte, просто встановіть Node Exporter на кожен сервер, який ви бажаєте моніторити. Потім у файлі prometheus.yml вашого центрального сервера Prometheus додайте IP-адресу кожного сервера та порт Node Exporter (наприклад, 192.168.1.10:9100) до списку цілей завдання node_exporter. Не забудьте відкрити порт 9100 на брандмауері кожного моніторингового сервера.

Найкращі практики безпеки для моніторингу

  • Брандмауер: Відкривайте порти моніторингу (9090, 9100, 3000) лише для довірених мереж або IP-адрес. Для Grafana розгляньте можливість розміщення її за зворотним проксі (наприклад, Nginx або Apache) з HTTPS для безпечного доступу.
  • Аутентифікація: Завжди змінюйте стандартні паролі Grafana. Розгляньте можливість інтеграції Grafana із зовнішнім постачальником автентифікації (LDAP, OAuth) для виробничих середовищ.
  • Виділені користувачі: Запуск Prometheus та Node Exporter під непривілейованими користувачами (як це зроблено в цьому посібнику) обмежує потенційну шкоду, якщо служба буде скомпрометована.

Вирішення поширених проблем

Навіть при ретельному виконанні кроків ви можете зіткнутися з проблемами. Ось як їх діагностувати:

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

  • Перевірте статус служби:
    sudo systemctl status prometheus
    sudo systemctl status node_exporter
    sudo systemctl status grafana-server
    Шукайте 'active (running)' або конкретні повідомлення про помилки.
  • Перегляньте логи:
    sudo journalctl -u prometheus -f
    sudo journalctl -u node_exporter -f
    sudo journalctl -u grafana-server -f
    Логи – ваш найкращий друг для розуміння, чому служба не запустилася. Шукайте помилки дозволів, проблеми з файлами конфігурації або конфлікти портів.
  • Синтаксис файлу конфігурації: Для Prometheus ви можете перевірити ваш prometheus.yml на наявність синтаксичних помилок:
    /usr/local/bin/promtool check config /etc/prometheus/prometheus.yml
    Це покаже вам, чи є якісь помилки парсингу.

2. Prometheus не збирає цілі (відсутні метрики Node Exporter)

  • Перевірте цілі в інтерфейсі Prometheus: Перейдіть за адресою http://YOUR_SERVER_IP:9090/targets. Якщо Node Exporter вказано, але зі статусом 'DOWN', перевірте стовпець 'Error' для підказок.
  • Брандмауер на моніторинговому сервері: Переконайтеся, що порт 9100 (Node Exporter) відкритий на сервері, де працює Node Exporter. Якщо Prometheus знаходиться на іншому сервері, переконайтеся, що його IP-адреса дозволена брандмауером сервера Node Exporter.
  • Node Exporter працює: Перевірте, чи Node Exporter активний та доступний локально на моніторинговому сервері:
    sudo systemctl status node_exporter
    curl http://localhost:9100/metrics
    Якщо curl не вдається, Node Exporter не працює або не прослуховує очікуваний порт/інтерфейс.
  • Конфігурація Prometheus: Двічі перевірте запис targets у /etc/prometheus/prometheus.yml на наявність друкарських помилок (наприклад, localhost:9100 або правильну IP-адресу). Не забудьте перезапустити Prometheus після будь-яких змін конфігурації.

3. Grafana не відображає дані або "Помилка джерела даних"

  • Підключення до джерела даних Prometheus: У Grafana перейдіть до 'Configuration' -> 'Data sources', натисніть на ваше джерело даних Prometheus і натисніть 'Save & test'. Якщо це не вдається, перевірте IP-адресу та порт сервера Prometheus у конфігурації джерела даних Grafana.
  • Брандмауер на сервері Prometheus: Переконайтеся, що порт 9090 (Prometheus) відкритий на сервері, де працює Prometheus, дозволяючи Grafana підключатися.
  • Prometheus працює та збирає метрики: Перевірте, чи Prometheus працює та активно збирає метрики Node Exporter (згідно з кроком 2 вирішення проблем). Якщо Prometheus не збирає дані, Grafana не матиме що відображати.
  • Конфігурація дашборду: Якщо деякі панелі порожні, переконайтеся, що запити в цих панелях правильні та посилаються на потрібні метрики. Іноді дашборди спільноти можуть потребувати невеликих коригувань для конкретних версій Prometheus або назв метрик.

4. Проблеми з дозволами

Якщо служби не запускаються або не записують дані, перевірте дозволи файлів та каталогів. Переконайтеся, що виділені користувачі (prometheus, node_exporter) є власниками відповідних каталогів та файлів, як це налаштовано у файлах служб systemd.

ls -la /usr/local/bin/prometheus
ls -la /etc/prometheus/prometheus.yml
ls -la /var/lib/prometheus

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

check_circle Висновок

Впровадження надійного рішення для моніторингу за допомогою Prometheus і Grafana є критично важливим кроком до максимізації потенціалу вашого виділеного сервера Valebyte. Від ігрових серверів і веб-хостингу до складних баз даних і CI/CD, постійна видимість забезпечує стабільність, продуктивність і спокій. Дотримуючись цього посібника, ви оснастили свою bare metal інфраструктуру інструментами для проактивного управління та оптимізації її операцій. Готові відчути неперевершений контроль і продуктивність? Ознайомтеся з асортиментом варіантів виділених серверів Valebyte сьогодні та закладіть основу для вашої потужної, контрольованої інфраструктури.

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

Поділитися цим записом:

Prometheus Grafana для голоме заліза Моніторинг виділеного сервера Налаштування моніторингу сервера Моніторинг голоме заліза Prometheus Node Exporter Налаштування дашборда Grafana Моніторинг Linux сервера Виділені сервери Valebyte Інструменти моніторингу сисадміна Моніторинг серверної інфраструктури
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.