Во-первых, извинения. Я предполагаю, что упустил что-то простое, но просто не вижу этого.
Я хочу добавить рабочий стол Windows 7 (имя хоста: DELL7010) в Prometheus с помощью wmi_exporter. Я также хочу добавить его, используя его имя хоста, а не IP-адрес, поскольку я хочу, чтобы IP-адрес оставался динамическим c. Сеть представляет собой простую домашнюю сеть 10.1.1.x без внутренней службы DNS.
Я успешно установил wmi_exporter (v0.11.0) и могу перейти по URL-адресу localhost (http://localhost: 9182 / metrics ) успешно.
На моем сервере Prometheus (Raspberry Pi под управлением Buster) у меня уже есть несколько других серверов Linux, которые отслеживаются с использованием stati c IP, назначенных в файле prometheus.yml , Поэтому мне приятно, что Prometheus работает правильно.
Чтобы сервер Prometheus мог разрешить имя хоста сервера Windows, я установил winbind и libnss-winbind и добавил «wins mdns4» в конец строки 'hosts:' в /etc/nsswitch.conf
. После этого я могу успешно ping DELL7010.local
или ping DELL7010
с сервера Prometheus. Кроме того, я могу запустить curl http://DELL7010:9182/metrics
или curl http://DELL7010.local:9182/metrics
из командной строки на сервере Prometheus и получить метрики, возвращаемые в терминал.
Однако, когда я добавляю
- targets: ['DELL7010:9182']
или
- targets: ['DELL7010.local:9182']
в мой файл prometheus.yml Я получаю сообщение об ошибке на странице целей Prometheus, которое указывает, что состояние сервера «выключено» и возвращается ошибка;
Get http://DELL7010.local:9182/metrics: dial tcp: lookup DELL7010.local on 10.1.1.1:53: no such host
Это несмотря на то, что конечная точка для сервера отображается в целях Prometheus как 'http://DELL7010.local: 9182 / metrics '.
Адрес, который появляется в ошибке, является локальным адресом моего ADSL модем, поэтому я предполагаю, что он решает, что имя хоста не может быть разрешено, и ищет помощи от модема. Но я не уверен, почему или как убедить Прометея, что имя хоста - то, куда я хочу его отправить. Я искал альтернативные параметры конфигурации в prometheus.yml
, но не могу найти вариант, который вызвал бы проблему.
EDIT : я обнаружил, что IP-адрес сообщен в ошибке (10.1.1.1) исходит от /etc/resolv.conf
. Что имеет смысл как механизм для Прометея, чтобы решить определить имена хостов. Однако в описанной выше ситуации я не уверен, как использовать это для решения проблемы
РЕДАКТИРОВАТЬ : чтобы смягчить эту проблему в то же время, я назначил резервирование IP для Windows на моем маршрутизаторе, и я использую IP-адрес в Prometheus.