#prometheus #prometheus-node-exporter
#prometheus #prometheus-node-exporter
Вопрос:
У меня есть хост с ip 10.0.0.6
-адресом в частной сети, которая работает под управлением prometheus.
Этот и несколько других хостов в сети запускают экспортер узлов через docker-compose, где {{ private_ip }}
автоматически заменяется фактическим частным ip-адресом:
node-exporter: image: prom/node-exporter:v1.3.1 pid: host volumes: - '/:/host:ro,rslave' command: - '--path.rootfs=/host' expose: - 9100 ports: - {{ private_ip }}:9100:9100 restart: unless-stopped
Это мой prometheus.yml
:
global: scrape_interval: 5s evaluation_interval: 5s scrape_configs: - job_name: 'node-exporters' scheme: http basic_auth: username: {{ node_exporter_auth_user }} password: {{ node_exporter_auth_password }} hetzner_sd_configs: - role: "hcloud" bearer_token: "{{ hcloud_prometheus_token }}" relabel_configs: - source_labels: [__meta_hetzner_hcloud_label_node_exporter] action: keep regex: true - source_labels: [__meta_hetzner_hcloud_label_node_exporter, __meta_hetzner_hcloud_private_ipv4_mynet] action: replace regex: true;(.*) target_label: __address__ replacement: '$1:9100' - action: labelmap regex: __meta_hetzner_hcloud_(. ) - action: labelmap regex: __meta_hetzner_server_(. )
Прометей способен очистить все другие хосты, но не свой собственный хост. Цель https://10.0.0.6:9100/metrics
обнаружена правильно и отображается в веб-интерфейсе prometheus в разделе цели.
Однако его статус сохраняется UNKNOWN
, потому что он никогда не очищается успешно.
Что я пытался
На 10.0.0.6
я попытался включить node-exporter
хост-сеть:
node-exporter: network_mode: host
Для prometheus
сервиса, который я попытался добавить
prometheus: extra_hosts: - "host.docker.internal:host-gateway"
I also ensured that I can curl the metrics successfully (but prometheus cannot) :
local$ ssh 10.0.0.6 remote$ curl -u someuser:correctpassword http://10.0.0.6:9100/metrics # shows the metrics