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.
Ich wurde verwendet, um meine Nagios-Server (bevor ich zu Icinga gewechselt bin) auf diese Weise zu konfigurieren, und es gibt keinen Mangel an Leistung, bis Sie mindestens mit einem 512-MB-Speicher / 1-CPU-Server mehr als 500 Dienste erreichen. Hostgruppen und Servicegruppen können vollständig getrennt behandelt werden, und ich würde diesen Ansatz empfehlen, da eine Datei pro Server (Dienste für diesen Server in dieser Datei definiert) und dann eine Datei pro Hostgruppe / Servicegruppe vorhanden ist. Dies ist nur verständlicher / klarer.
Wenn Sie auf Skalierbarkeitsprobleme stoßen, sollten Sie sich nagios-nrpe-server ansehen, das clientseitige Überprüfungen durchführt und bei dem Ihr Nagios-Server nur nach Ergebnissen fragt. die die Ressource des Schecks schonen. (Nagios startet check_nrpe, der Client wird angefordert, führt lokal Überprüfungen durch und antwortet zurück auf nagios). Beachten Sie, dass nicht alle Prüfungen auf diese Weise behandelt werden können (z. B. SNMP).
Abschließend möchte ich vorschlagen, auf Icinga umzusteigen, das viel skalierbarer ist und von einer stärkeren Community unterstützt wird, die sich wirklich um die Implementierung neuer Funktionen und die Benutzerunterstützung kümmert. Die Konfiguration ist dieselbe (gleiche Konfigurationsdateien, gleiche Syntax).
quelle
Ich benutze dieses Schema:
Jede Entität hat ihre eigene Datei. Außerdem können Sie mit den Vorlagen Ihre Konfiguration immer besser lesbar machen. Beispielsweise können Sie auf jedem Host einen durchschnittlichen Auslastungsgrad, Speicherplatz und Speicher haben. Es ist also ganz einfach und praktisch, eine generische Vorlage zu erstellen und zu verwenden.
quelle
Sie können die Konfiguration nicht durch das Erstellen von Gruppen erschweren. Wie Asciiphil sagt, erstellen Sie eine Datei oder Sie können dieselben Gruppen in einigen der vorhandenen Dateien wie (hosts.cfg oder was auch immer) definieren, und Sie erstellen diese Datei oder Sie sagen Nagios, dass diese Datei aktiv ist (dies ist, wenn Sie erstellen ein neues Feld, falls es nicht bereits aktiv ist. Dies befindet sich in der Datei nagios.cfg, in der Sie den Pfad der neu erstellten Datei angeben. "cfg_file = / usr / local / nagios / etc / properties / NEW_FILE.cfg"
Die andere Sache ist nur, Gruppen abhängig von Ihrer Infrastruktur zu bilden. Wenn ich zum Beispiel Linux und Windows Server habe, werde ich zwei verschiedene Gruppen bilden, eine für Linux und eine für Windows. So ist es auch mit den Dienstleistungen. Je nachdem, wie Sie konfigurieren und sehen möchten, wann Sie auf dem Monitor überwachen, wie möchten Sie sie als Gruppen sehen.
Und für die Datei oder den Teil, wie man eine Gruppe erstellt, ist es einfach.
Und in der Hostkonfiguration / oder wenn Sie eine Vorlage verwenden oder wenn Sie bereits eine Hostvorlage oder einen Dienst definiert haben und die Verwendung verwenden, können Sie allen Hosts / Windows- oder Linux-Hosts automatisch mitteilen, dass sie Mitglieder einer von Ihnen erstellten definierten Hostgruppe sind.
quelle