Я настраиваю Icinga (вилка Nagios), и у меня есть несколько машин с несколькими интерфейсами. Некоторые службы прослушивают только один из них, и для их правильной проверки я хотел бы знать, можно ли настроить несколько IP-адресов для одного хоста в Icinga.
Вот минимальный пример:
Удаленный сервер:
1.2.3.4
(публичный IP)10.1.2.3
(частный IP, безопасный туннель)1.2.3.4:80
. (только для всех)10.1.2.3:22
. (только внутренняя сеть)0.0.0.0:25
(все интерфейсы)Сервер Icinga:
10.2.3.4
(частный IP, доступ в интернет)Теперь, если я определю хост:
define host {
use generic-host
host_name server1
alias server1.gertvandijk.net
address 10.1.2.3
}
Это не позволит правильно проверить статус HTTP. И определение дополнительного хоста:
define host {
use generic-host
host_name server1-public
alias server1.gertvandijk.net
address 1.2.3.4
}
проверит все, но отображается как два независимых хоста. Теперь я хочу «объединить» эти два хоста, чтобы они отображались как один, но в то же время предоставил простую конфигурацию для проверки служб на их правильных адресах.
Что является наиболее элегантным решением, позволяющим сэкономить количество строк в конфигурации? Я читал о нескольких доступных плагинах для обхода этой проблемы, но я не могу понять, как это исправить. Решения относятся к 2003 году, но я использую Icinga 1.7.1, уже способную address6
вариант, но это вызывает разрешение только IPv6 для имени хоста ...
В идеале я хочу настроить Icinga так, чтобы он был достаточно умным, чтобы знать, что экземпляр Postfix, работающий на 10.1.2.3:25
такой же как 1.2.3.4:25
и, таким образом, не вызывает двух сигналов тревоги.
Я предполагаю, что это должно было быть решено раньше, и системные администраторы настроили это сейчас. Поделитесь, пожалуйста, своим решением. Спасибо! :)
Вы можете определить переменная настраиваемого объекта, что-то вроде этого:
define host {
use generic-host
host_name server1
alias server1.gertvandijk.net
address 10.1.2.3
_wan_address 1.2.3.4
}
тогда назовите это как $_HOSTWAN_ADDRESS$
макрос:
define command{
command_name check_wan_http
command_line $USER1$/check_http -I $_HOSTWAN_ADDRESS$ $ARG1$
}
define service{
use generic-service
hostgroup_name apache
service_description Apache
check_command check_wan_http
process_perf_data 0
contact_groups admin
}