Це так, як писав TryTryAgain. Останні документи описують два різні способи.
Top-Down Remote Command Execution і Top-Down синхронізація конфігурації
Відмінність цього підходу полягає в тому, що віддалене виконання команд запускає всі команди від головного, в той час як налаштування синхронізації синхронізує всі конфігураційні файли, розташовані в /etc/icinga2/zones.d
дочірніх вузлах (супутники, а також клієнти) і запускає виконання команд безпосередньо в кінцевій точці.
Я вважаю за краще використовувати підхід Config Sync Top-Down Config, оскільки клієнт буде виконувати перевірки, навіть якщо майстер втрачає зв’язок з дитиною.
Ви повинні включити цю API
функцію на всіх вузлах.
# /etc/icinga2/features-enabled/api.conf
object ApiListener "api" {
cert_path = "/etc/ssl/{{ hostname }}.pem"
key_path = "/etc/ssl/{{ hostname }}-key.pem"
ca_path = "/etc/ssl/rootca.pem"
// only on satelites and clients
accept_config = true
}
Тепер створіть файл зони та скопіюйте його на всі вузли
# /etc/icinga2/zones.conf
// global zone used for zone overlapping configs
object Zone "global" {
global = true
}
// endpoints
object Endpoint "fqdn1.of.host" {
host = "fqdn1.of.host"
}
object Endpoint "fqdn2.of.host" {
host = "fqdn2.of.host"
}
// for each endpoint one zone
object Zone "fqdn1.of.host" {
endpoints = [ "fqdn1.of.host" ]
}
object Zone "fqdn2.of.host" {
endpoints = [ "fqdn2.of.host" ]
parent = "fqdn1.of.host"
}
найкраща практика - використовувати fqdn ваших вузлів як назву кінцевої точки, а також ім'я зони.
Пам'ятайте : скопіюйте це zones.conf
на всі вузли.
Наступним кроком буде визначення всіх служб, шаблонів та груп всередині /etc/icinga2/zones.d/
кожного хоста у його власному hosts.conf всередині його директора зон.
# /etc/icinga2/zones.d/global/templates.conf
template Host "generic-host" {
max_check_attempts = 3
check_interval = 1m
retry_interval = 30s
check_command = "hostalive"
}
# /etc/icinga2/zones.d/fqdn1.of.host/hosts.conf
// this is the master
object Host "fqdn1.of.host" {
import "generic-host"
address = "fqdn1.of.host"
}
# /etc/icinga2/zones.d/fqdn2.of.host/hosts.conf
// this is a satelite/client
object Host "fqdn2.of.host" {
import "generic-host"
address = "fqdn2.of.host"
}
Мій підхід полягав у тому, щоб не допустити використання конфігурацій всередині, /etc/icinga2/conf.d
тому що я додав усі загальні (та глобально використовувані) речі /etc/icinga2/zones.d/global
та специфічні для хосту речі всередині/etc/icinga2/zones.d/fqdnX.of.host
І останнє, але не менш важливо, вам потрібно видалити оператор include для conf.d
# /etc/icinga2/icinga2.conf
[...]
// include_recursive "conf.d"
Це воно. Цей параметр вимагає керування вашими сертифікатами вручну або за допомогою конфігураційного управління на ваш вибір. Він не генерує його та не використовує pki icinga. Не бачу жодної причини, чому я повинен використовувати специфічну програму pki до тих пір, поки для цього є конкретні інструменти.