Посібник з налаштування Prometheus та node_exporter

15 хв читання - 29 травня 2026 р.

hero section cover
Зміст
  • Налаштування моніторингу серверів Prometheus та node_exporter
  • Встановлення node_exporter
  • Запуск node_exporter як служби systemd
  • Налаштування Prometheus для збору даних з node_exporter
  • Захист вашого стеку моніторингу
  • Кращі практики моніторингу та наступні кроки
  • Усунення несправностей
Поділитися

Встановіть Prometheus та node_exporter, налаштуйте цілі вилучення, налаштуйте системні служби та захистіть стек моніторингу. Покрокова інструкція для Linux.

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

Prometheus збирає та зберігає часові ряди метрик. node_exporter надає Prometheus дані системного рівня, такі як використання процесора, пам'яті та дискового простору, для збору. Цей посібник охоплює встановлення обох, налаштування цілей збору даних, запуск node_exporter як служби systemd та обмеження доступу.

Встановлення node_exporter

Завантажте останню стабільну версію з офіційної сторінки релізів GitHub. Станом на травень 2026 року це версія 1.11.1. Замініть amd64 на arm64 за необхідності.

wget https://github.com/prometheus/node_exporter/releases/download/v1.11.1/node_exporter-1.11.1.linux-amd64.tar.gz

Перевірте контрольну суму SHA256, порівнявши її зі значенням на сторінці випусків, а потім розпакуйте та встановіть:

tar -xzvf node_exporter-1.11.1.linux-amd64.tar.gz
sudo mv node_exporter-1.11.1.linux-amd64/node_exporter /usr/local/bin/

Створіть спеціального системного користувача без домашнього каталогу та оболонки входу:

sudo useradd --no-create-home --shell /bin/false node_exporter
sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter

Перевірте це, запустивши /usr/local/bin/node_exporter безпосередньо, а потім перевірте вихідні дані:

curl http://localhost:9100/metrics

Ви повинні побачити рядки, що починаються з node_, включаючи такі показники, як node_cpu_seconds_total та node_memory_MemAvailable_bytes. За замовчуванням node_exporter надає близько 500 часових рядів.

Запуск node_exporter як служби systemd

Запуск node_exporter з терміналу підходить для тестування, але він зупиняється, коли ви закриваєте сесію. Створіть файл модуля за адресою /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
Restart=on-failure
RestartSec=5
ExecStart=/usr/local/bin/node_exporter
 
[Install]
WantedBy=multi-user.target

Увімкніть та запустіть службу:

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

Переконайтеся, що вона працює, за допомогою sudo systemctl status node_exporter. У виведенні має з’явитися active (running).

Якщо Prometheus працює на тому ж хості, прив’яжіть node_exporter лише до localhost, змінивши рядок ExecStart :

ExecStart=/usr/local/bin/node_exporter --web.listen-address="127.0.0.1:9100"

Налаштування Prometheus для збору даних з node_exporter

Відкрийте /etc/prometheus/prometheus.yml та додайте завдання в розділі scrape_configs:

scrape_configs:
  - job_name: 'node_exporter'
    scrape_interval: 15s
    static_configs:
      - targets: ['localhost:9100']
        labels:
          env: 'production'

The job_name ідентифікує джерело в запитах та на інформаційних панелях. targets вказує на хост і порт, на якому працює node_exporter. Мітки, такі як env допоможуть вам фільтрувати метрики пізніше.

Перевірте конфігурацію перед перезапуском:

promtool check config /etc/prometheus/prometheus.yml

Якщо перевірка пройшла успішно, перезавантажте Prometheus без простою:

sudo systemctl reload prometheus

Відкрийте http://<your-prometheus-ip>:9090, перейдіть до Status > Targets і переконайтеся, що завдання node_exporter має зелений статус UP. Виконайте швидкий запит, наприклад node_cpu_seconds_total у браузері виразів, щоб переконатися, що дані надходять.

Захист вашого стеку моніторингу

Ніколи не відкривайте порти 9090 або 9100 для публічного доступу в Інтернеті. У Ubuntu/Debian обмежте доступ node_exporter до IP-адреси вашого сервера Prometheus:

sudo ufw allow from <prometheus-ip> to any port 9100

У CentOS/RHEL з firewalld:

firewall-cmd --permanent --add-port=9100/tcp

Веб-інтерфейс Prometheus слід розмістити за зворотним проксі-сервером, таким як Nginx, з базовою автентифікацією та TLS. Мережевий VPN, такий як Tailscale, є ще одним варіантом, якщо вам потрібен доступ з декількох місць без прямого відкриття портів.

Кращі практики моніторингу та наступні кроки

Використовуйте node_memory_MemAvailable_bytes замість MemFree для сповіщень про пам'ять. MemAvailable враховує буфери та кеш, надаючи більш точне уявлення про те, що насправді є вільним.

Вимкніть колектори, які вам не потрібні (wifi, nfs, bcache), за допомогою прапорця --no-collector.<name> прапорцем, щоб зменшити шум.

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

Щоб моніторити кілька серверів, встановіть node_exporter на кожній машині та додайте їхні IP-адреси до списку targets список у prometheus.yml. Для більших середовищ перейдіть на виявлення служб на основі файлів замість жорсткого кодування IP-адрес.

Додавання Grafana надає вам візуальні інформаційні панелі. Інформаційна панель Node Exporter Full (ID 1860) — хороший початок. Alertmanager перенаправляє критичні сповіщення у Slack, на електронну пошту або в PagerDuty.

Виділені сервери та плани VPS від FDC підтримують Prometheus та node_exporter «з коробки». Дивіться варіанти виділених серверів від FDC.

Усунення несправностей

ПроблемаЙмовірна причинаКоманда для перевірки
Служба не запускаєтьсяНеправильний шлях до бінарного файлу або права доступуjournalctl -u node_exporter -xe
Неможливо отримати доступ до метрикБрандмауер блокує порт 9100 або неправильна адреса прив'язкиss -lntp | grep 9100
Ціль у Prometheus не працюєПроблема з мережею або неправильна IP-адреса цільового сервера у файлі prometheus.ymlcurl -I http://<target-ip>:9100/metrics
Відсутні певні метрикиКолектор вимкнено за замовчуваннямnode_exporter --help

Блог

На цьому тижні

Більше статей
Посібник з налаштування Prometheus та node_exporter

Посібник з налаштування Prometheus та node_exporter

Встановіть Prometheus та node_exporter, налаштуйте цілі вилучення, налаштуйте системні служби та захистіть стек моніторингу. Покрокова інструкція для Linux.

15 хв читання - 29 травня 2026 р.

XDP та eBPF для обробки пакетів у Linux

14 хв читання - 27 травня 2026 р.

Більше статей
background image

Маєте запитання або потребуєте індивідуального рішення?

icon

Гнучкі варіанти

icon

Глобальне охоплення

icon

Миттєве розгортання

icon

Гнучкі варіанти

icon

Глобальне охоплення

icon

Миттєве розгортання