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 sshFä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_dirDirektive in Ihrer nagios.cfgDatei verwenden, durchsucht Nagios dieses Verzeichnis rekursiv. Nutzen Sie das. Für eine Einstellung von cfg_dir=/etc/nagios/conf.dkö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.dfü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.cfgwürde Datei die Befehle check_nrpeund check_nrpe_1arg, während http.cfgkö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.cfgDatei und eine services.d/templates.cfgDatei. Wenn Sie sie häufiger verwenden, können sie in Dateien mit entsprechendem Namen in einem templates.dVerzeichnis abgelegt werden .
1 Ich möchte auch einen check_http_blindlyBefehl 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.