Es ist wie TryTryAgain geschrieben hat. Die neuesten Dokumente beschreiben zwei verschiedene Möglichkeiten.
Top-Down-Remote-Befehlsausführung und Top-Down-Konfigurationssynchronisierung
Der Unterschied zu diesen Ansätzen besteht darin, dass die Remote-Befehlsausführung alle Befehle vom Master auslöst, während die Konfigurationssynchronisierung alle Konfigurationsdateien synchronisiert, die sich in /etc/icinga2/zones.d
den untergeordneten Knoten (Satelliten sowie Clients) befinden, und die Befehlsausführung direkt auf dem Endpunkt auslöst.
Ich bevorzuge den Top-Down-Konfigurationssynchronisierungsansatz, da der Client Überprüfungen ausführt, selbst wenn der Master die Verbindung zum untergeordneten Element verliert.
Sie müssen die API
Funktion auf allen Knoten aktivieren .
# /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
}
Erstellen Sie nun eine Zonendatei und kopieren Sie sie auf alle Knoten
# /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"
}
Es wird empfohlen, den fqdn Ihrer Knoten sowohl als Endpunktnamen als auch als Zonennamen zu verwenden.
Denken Sie daran : Kopieren Sie dies zones.conf
auf alle Knoten.
Der nächste Schritt wäre, alle Dienste, Vorlagen und Gruppen innerhalb /etc/icinga2/zones.d/
und jeden Host in seiner eigenen hosts.conf innerhalb seines Zonenverzeichnisses zu definieren.
# /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"
}
Mein Ansatz war mit den configs innen zu verhindern , /etc/icinga2/conf.d
weil ich alle generischen hinzugefügt (und global gebrauchte) Sachen in /etc/icinga2/zones.d/global
und die Host - spezifischen Stoff , innen/etc/icinga2/zones.d/fqdnX.of.host
Zu guter Letzt müssen Sie die include-Anweisung für conf.d entfernen
# /etc/icinga2/icinga2.conf
[...]
// include_recursive "conf.d"
Das ist es. Dieses Setup erfordert die manuelle Verwaltung Ihrer Zertifikate oder die Konfigurationsverwaltung Ihrer Wahl. Es wird es nicht erzeugen und verwendet nicht das icinga pki. Ich sehe keinen Grund, warum ich ein werkzeugspezifisches pki verwenden sollte, solange es dafür spezielle Werkzeuge gibt.