node_exporter: метрики машины для Prometheus
шпаргалка · Ubuntu 24.04 · node_exporter 1.7 https://lab.dimsanych.ru/ru/wiki/node-exporter/Шпаргалка
-
sudo systemctl enable --now prometheus-node-exporterвключить -
systemctl status prometheus-node-exporterжива ли служба -
ss -tlnp | grep 9100где слушает -
curl -s localhost:9100/metrics | lessвсё, что отдаёт -
curl -s localhost:9100/metrics | grep -c '^node_'число значений -
curl -s localhost:9100/metrics | grep MemAvailableодна метрика -
curl -s localhost:9100/metrics | promtool check metricsформат -
sudo systemctl restart prometheus-node-exporterпосле правки ARGS
Конфигурация
Ключи запуска
Настроек в файле у экспортёра нет — только ключи командной строки.
Служба берёт их из переменной ARGS в
/etc/default/prometheus-node-exporter; в пакете она пустая
(ARGS=""), то есть всё по умолчанию:
После правки — sudo systemctl restart prometheus-node-exporter.
reload здесь не годится: см. node-exporter. Все
ключи с описаниями — prometheus-node-exporter --help.
Адрес и порт
По умолчанию экспортёр слушает порт 9100 на всех адресах машины:
Адрес и порт задаёт ключ --web.listen-address. Его ставят в ARGS
файла /etc/default/prometheus-node-exporter или в дополнении службы
(sudo systemctl edit prometheus-node-exporter → файл
/etc/systemd/system/prometheus-node-exporter.service.d/override.conf,
где строка ExecStart= заменяет команду запуска). Где ключ задан на
самом деле:
systemctl cat prometheus-node-exporter— юнит вместе с дополнениями, у каждого файла — строка# /путь;systemctl status prometheus-node-exporter— в строкеCGroupпод номером процесса видна вся команда с ключами;ss -tlnp | grep prometheus-node— какой порт слушает сейчас.
Пароля и шифрования нет: кто достучался до порта, тот видит метрики.
--web.listen-address=127.0.0.1:9100 оставляет доступ только с самой
машины — тогда Prometheus с другой машины получит connection
refused. Если Prometheus живёт на другой машине, экспортёр слушает
её внешний адрес, а порт в firewall открыт только для адреса
Prometheus.
Метрики — только по пути /metrics. На любой другой путь экспортёр
отвечает HTML-страницей с кодом 200, и Prometheus с неверным
metrics_path пишет в lastError expected a valid start token, got
"<" (prometheus).