Hostgruppen und Vorlagen.
Mit Vorlagen können Sie Klassen für Ihre Hosts und Dienste definieren, z. B. "normaler Dienst", "kritischer Dienst", "Host mit niedriger Priorität". Sie dienen auch als nützliche Methode zum Aufteilen von Verantwortlichkeiten, wenn Sie mehrere Teams mit unterschiedlichen Verantwortlichkeiten haben. Sie können also eine "Linux-Host" -Vorlage und eine "Windows-Host" -Vorlage haben, wobei jedes die entsprechenden Kontaktinformationen definiert.
Sie können mehrere Vorlagen für eine einzelne Ressource verwenden, um entsprechend orthogonale Vorlagen zu erstellen. Zum Beispiel können Sie haben
host foo {
use windows-host,normal-priority-host
...
}
Dadurch werden die Kontaktinformationen (und Eskalationen) für das Windows-Team sowie die Abfrageraten und Schwellenwerte für einen "normalen" Host abgerufen.
Mit Hostgruppen können Sie alle Prüfungen für eine Teilmenge Ihrer Hosts zusammenfassen. Haben Sie Dinge wie "Baseline-Linux-Hosts", die die Last, den Speicherplatz, die ssh
Fähigkeiten und alle anderen Dinge überprüfen, die auf jedem von Ihnen überwachten Host vorhanden sein sollten. Fügen Sie Gruppen wie "https-Server" hinzu, um die HTTP-Konnektivität, die HTTPS-Konnektivität und das Ablaufdatum des SSL-Zertifikats zu überprüfen. "Dateiserver" mit Überprüfungen der NFS- und SMB-Zugänglichkeit und möglicherweise aggressiveren Festplattenprüfungen; oder "virtuelle Maschinen" mit Überprüfungen, ob die VM-Eingabehilfen ordnungsgemäß ausgeführt werden.
Fügen Sie jeden Host und jede Hostgruppe in eine eigene Datei ein. Diese Datei sollte zuerst die Host- oder Hostgruppendefinition enthalten, gefolgt von den Definitionen der Dienste, die für sie gelten.
Wenn Sie die cfg_dir
Direktive in Ihrer nagios.cfg
Datei verwenden, durchsucht Nagios dieses Verzeichnis rekursiv. Nutzen Sie das. Für eine Einstellung von cfg_dir=/etc/nagios/conf.d
können Sie einen Verzeichnisbaum wie den folgenden haben:
- /etc/nagios/conf.d/
- befehle.d /
- http.cfg
- nrpe.cfg
- smtp.cfg
- ssh.cfg
- hosts.d /
- host1.cfg
- host2.cfg
- host3.cfg
- hostgroups.d /
- hostgroup1.cfg
- hostgroup2.cfg
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 hosts.d
für jede Site Unterverzeichnisse unter verwendet . In meinem aktuellen Job werden die meisten Nagios-Hostdefinitionen von Puppet verwaltet. Daher gibt es ein Verzeichnis für von Puppet verwaltete Hosts und ein separates für handverwaltete Hosts.
Beachten Sie, dass die oben genannten Befehle auch in mehrere Dateien unterteilt werden, im Allgemeinen nach Protokoll. Somit wird das nrpe.cfg
würde Datei die Befehle check_nrpe
und check_nrpe_1arg
, während http.cfg
könnte check_http
, check_http_port
, check_https
, check_https_port
, und check_https_cert
. 1
Ich habe normalerweise keine enorme Anzahl von Vorlagen, daher habe ich normalerweise nur eine hosts.d/templates.cfg
Datei und eine services.d/templates.cfg
Datei. Wenn Sie sie häufiger verwenden, können sie in Dateien mit entsprechendem Namen in einem templates.d
Verzeichnis abgelegt werden .
1 Ich möchte auch einen check_http_blindly
Befehl haben, der im Grunde ist check_http -H $HOSTADDRESS$ -I $HOSTADDRESS$ -e HTTP/1.
; Es gibt OK zurück, auch wenn es einen 403-Antwortcode erhält.