Руководство по настройке Prometheus и node_exporter

15 мин чтения - 29 мая 2026 г.

hero section cover
Содержание
  • Настройка мониторинга серверов Prometheus и node_exporter
  • Установка node_exporter
  • Запуск node_exporter в качестве службы systemd
  • Настройка Prometheus для сбора данных с node_exporter
  • Обеспечение безопасности вашего стека мониторинга
  • Лучшие практики мониторинга и дальнейшие шаги
  • Устранение неполадок
Поделиться

Установите Prometheus и node_exporter, настройте цели соскоба, настройте службы systemd и обеспечьте безопасность стека мониторинга. Шаг за шагом для 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, настройте цели соскоба, настройте службы systemd и обеспечьте безопасность стека мониторинга. Шаг за шагом для Linux.

15 мин чтения - 29 мая 2026 г.

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

14 мин чтения - 27 мая 2026 г.

Другие статьи
background image

У вас есть вопросы или вам нужно индивидуальное решение?

icon

Гибкие варианты

icon

Глобальный охват

icon

Мгновенное развертывание

icon

Гибкие варианты

icon

Глобальный охват

icon

Мгновенное развертывание