Невозможно добавить цель Windows в prometheus.yml, используя имя хоста - PullRequest
1 голос
/ 12 апреля 2020

Во-первых, извинения. Я предполагаю, что упустил что-то простое, но просто не вижу этого.

Я хочу добавить рабочий стол 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.

...