Hostgruppen und Vorlagen.
Mit Templates können Sie Klassen für Ihre Hosts und Services definieren, z. "normaler Dienst", "kritischer Dienst", "Host mit niedriger Priorität". Sie dienen auch als nützliche Möglichkeit, die Verantwortlichkeiten aufzuteilen, wenn Sie mehrere Teams mit unterschiedlichen Verantwortlichkeiten haben, sodass Sie eine „Linux-Host“-Vorlage und eine „Windows-Host“-Vorlage haben können, wobei jede die entsprechenden Kontaktinformationen definiert.
Sie können mehrere Vorlagen für eine einzelne Ressource verwenden, sodass Sie entsprechend orthogonale Vorlagen erstellen können. Sie können zum Beispiel
habenhost foo {
use windows-host,normal-priority-host
...
}
die die Kontaktinformationen (und Eskalationen) für das Windows-Team und die Abfrageraten und Schwellenwerte für einen "normalen" Host abrufen würden.
Mit Hostgruppen können Sie alle Prüfungen für eine Teilmenge Ihrer Hosts zusammenfassen. Haben Sie Dinge wie "baseline-linux-hosts", die die Auslastung, den Speicherplatz, ssh
überprüfen Fähigkeit, und was auch immer andere Dinge auf jedem Host sein sollten, den Sie überwachen. Fügen Sie Gruppen wie „https-server“ mit Prüfungen für HTTP-Konnektivität, HTTPS-Konnektivität und Ablaufdaten von SSL-Zertifikaten hinzu; „Dateiserver“ mit Prüfungen für NFS- und SMB-Zugriff und möglicherweise aggressiveren Festplattenprüfungen; oder "virtuelle Maschinen" mit Überprüfungen, ob die VM-Zugänglichkeitstools ordnungsgemäß ausgeführt werden.
Platzieren Sie jeden Host und jede Hostgruppe in einer eigenen Datei. Diese Datei sollte zuerst die Host- oder Hostgruppen-Definition enthalten, gefolgt von den Definitionen der Dienste, die darauf zutreffen.
Wenn Sie den cfg_dir
verwenden Direktive in Ihrem nagios.cfg
-Datei durchsucht Nagios rekursiv dieses Verzeichnis. Nutzen Sie das. Bei einer Einstellung von cfg_dir=/etc/nagios/conf.d
, können Sie einen Verzeichnisbaum wie den folgenden haben:
- /etc/nagios/conf.d/
- commands.d/
- http.cfg
- nrpe.cfg
- smtp.cfg
- ssh.cfg
- hosts.d/
- host1.cfg
- host2.cfg
- host3.cfg
- hostgroups.d/
- hostgroup1.cfg
- hostgroup2.cfg
- commands.d/
Ich neige dazu, ein Verzeichnis für jeden Ressourcentyp (Befehle, Kontaktgruppen, Kontakte, Eskalationen, Hostgruppen, Hosts, Servicegruppen, Zeiträume) zu erstellen, mit Ausnahme von Diensten, die mit den Hosts oder Hostgruppen gruppiert werden, die sie verwenden.
Die genaue Struktur kann je nach Ihren organisatorischen Anforderungen variieren. Bei einem früheren Job habe ich Unterverzeichnisse unter hosts.d
verwendet für jede andere Website. Bei meinem derzeitigen Job werden die meisten Nagios-Hostdefinitionen von Puppet verwaltet, also gibt es ein Verzeichnis für von Puppet verwaltete Hosts und ein separates für manuell verwaltete Hosts.
Beachten Sie, dass die oben genannten Befehle auch in mehrere Dateien aufgeteilt werden, im Allgemeinen nach Protokoll. Also die nrpe.cfg
Datei hätte die Befehle check_nrpe
und check_nrpe_1arg
, während http.cfg
könnte check_http
haben , check_http_port
, check_https
, check_https_port
, und check_https_cert
.
Normalerweise habe ich keine riesige Anzahl von Vorlagen, also habe ich normalerweise nur eine hosts.d/templates.cfg
Datei und ein services.d/templates.cfg
Datei. Wenn Sie sie häufiger verwenden, können sie in entsprechend benannten Dateien in einem templates.d
abgelegt werden Verzeichnis.
Ich habe auch gerne einen check_http_blindly
Befehl, der im Grunde check_http -H $HOSTADDRESS$ -I $HOSTADDRESS$ -e HTTP/1.
ist; es gibt OK zurück, selbst wenn es einen 403-Antwortcode erhält.
Nutzen Sie ausgiebig Service- und Hostgruppen sowie Templating. Erstellen Sie Hostgruppen und weisen Sie den Hostgruppen Dienste zu. Verwenden Sie Servicegruppen für Abhängigkeiten, Eskalationen und logische Gruppierungen in der Webbenutzeroberfläche.
Wenn Sie Gruppen für alles haben, besteht das Hinzufügen eines neuen Hosts aus nur 3 oder 4 Zeilen:Name, Adresse, Vorlage(n) und (optional) Hostgruppen. Alles kann mit Vorlagen versehen werden.
Lesen Sie unbedingt die Dokumentation zur Vererbung und auch die Seite mit zeitsparenden Tricks. Mehrfachvererbung kann schwierig werden, aber wenn sie richtig verwendet wird, spart sie enorm viel Zeit.