прометей не может очистить узел-экспортер на собственном хосте

#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