В настоящее время у меня проблемы с отслеживанием времени работы целевой машины в Nagios / Icinga, которая использует динамический IP-адрес. В сети используется контроллер домена Windows для DNS, сервер Icinga работает на машине Ubuntu внутри сети.
При запуске команды check_ping вручную я получаю следующую ошибку:
> ./check_ping -H somehost -w 10,1% -c 20,2%
check_ping: Invalid hostname/address - somehost
Когда я запускаю команду ping, она работает:
> ping somehost
PING somehost.local (192.168.0.206) 56(84) bytes of data.
64 bytes from somehost.local (192.168.0.206): icmp_req=1 ttl=128 time=0.215 ms
Как я могу включить мониторинг хостов с использованием динамического IP?
Поскольку ваш домен AD (к сожалению) использует ".local" в качестве суффикса DNS, у вас, вероятно, есть конфликт с mDNS (AKA zeroconf, bonjour и т. Д.)
Ubuntu поставляется с установленным / включенным Avahi mDNS по умолчанию. Возможно, вам придется отключить (через nsswitch) или удалить пакеты avahi, чтобы разрешить разрешение хоста не-mDNS для имен DNS .local.
Кроме того, вы можете использовать check_icmp вместо check_ping, так как это примерно в 10 раз быстрее.
Одно предложение, которое является скорее обходным решением, чем ответом на ваш конкретный вопрос.
Что действует как DHCP-сервер в вашей сети? Возможно, было бы неплохо настроить резервирование / статический IP-адрес для 'somehost', а затем использовать ваш скрипт check_ping с IP вместо имени хоста.
Фактически, для целей тестирования работает ли check_ping с ip rathar, чем с именем хоста?
Попробуйте что-нибудь вроде:
./check_ping -H somehost.local -w 10,1% -c 20,2%
Вам нужны динамические обновления с DHCP-сервера на DNS-сервер, чтобы запись хоста A всегда получала одно и то же имя независимо от назначенного IP-адреса. Тогда ваш "check_ping -H host-name" всегда будет указывать на правильный адрес.
Извините, я понятия не имею, как это работает в Windows DHCP / DNS.