Как объявить переменную и повторно использовать ее в разделе хостов icinga2?
Сейчас я использую приведенный ниже конфиг для хост-сервера Icinga2:
vars.health_check["my_module1"]={
host = "HEALTH_CHECK_SERVER_URL"
module = "my_module1"
}
vars.health_check["my_module2"]={
host = "HEALTH_CHECK_SERVER_URL"
module = "my_module2"
}
Проблема, как вы видите, заключается в том, что мне нужно повторно объявить тот же адрес хоста. Когда я помещаю адрес хоста вне службы, как показано ниже, он не работает и перезагрузка Icinga2
терпит неудачу:
end_url = "HEALTH_CHECK_SERVER_URL"
vars.health_check["my_module1"]={
host = "$end_url$"
module = "my_module1"
}
vars.health_check["my_module2"]={
host = "$end_url$"
module = "my_module2"
}
Я даже пытался использовать vars.end_url
но опять тот же сценарий. Как мне объявить переменную в Icinga2
,
1 ответ
Вы можете использовать адрес хоста с $address$, поэтому, если адрес хоста соответствует разрешенному URL-адресу, он должен работать следующим образом:
end_url = "HEALTH_CHECK_SERVER_URL"
vars.health_check["my_module1"]={
host = "$address$"
module = "my_module1"
}
vars.health_check["my_module2"]={
host = "$address$"
module = "my_module2"
}
Вы смотрели в Icinga2 Director?, Это удобно, и конфиги хоста легче управляются. Кроме того, monitor-portal.org является хорошим ресурсом для сообщества Icinga.
Если вы используете Director, вы можете сделать клон команды, а затем установить аргументы в переменные, такие как $end_url$, а затем создать поле. Затем вы можете добавить поле в свой шаблон (импорт) и ввести его один раз там.
Например, мы используем этот метод для строк сообщества SNMP. У нас есть поле для $snmp_community$, прикрепленное к нашим шаблонам. Поэтому в любой команде, где нам нужно сообщество, мы просто используем эту переменную. Вот как Icinga2 знает все строки сообщества нашего LAN Distro, и если нам нужно изменить его, мы просто изменим его один раз.