Nagios ist eine der besten verfügbaren Open-Source-Server- und Netzwerküberwachungslösungen. Mit dem flexiblen Nagios-Framework können Sie so ziemlich alles überwachen (einschließlich Datenbanken und benutzerdefinierte Anwendungen). Dieser Artikel erklärt in 4 einfachen Schritten, wie Sie Kontaktdefinitionen einrichten, die benachrichtigt werden, wenn ein Host oder Dienst Probleme hat.
Zuvor haben wir auch darüber gesprochen, wie man Nagios einrichtet und Windows-Server überwacht, Linux-Server überwacht, VPN-Sitzungen überwacht und Netzwerk-Switches überwacht.
1. Definieren Sie eine generische Kontaktvorlage in templates.cfg
Die Installation von Nagios bietet eine standardmäßige generische Kontaktvorlage, die als Referenz zum Erstellen Ihrer Kontakte verwendet werden kann. Bitte beachten Sie, dass alle Richtlinien, die in der allgemeinen Kontaktvorlage unten erwähnt werden, obligatorisch sind. Wenn Sie sich also entschieden haben, die allgemeine Kontaktvorlagendefinition nicht in Ihren Kontakten zu verwenden, sollten Sie alle diese obligatorischen Definitionen in Ihren Kontakten selbst definieren.
Der folgende generische Kontakt ist bereits unter /usr/local/nagios/etc/objects/templates.cfg verfügbar. Außerdem ist die templates.cfg standardmäßig in der nagios.cfg enthalten, wie unten gezeigt.
Bitte beachten Sie, dass jede dieser Direktiven, die in der templates.cfg erwähnt werden, außer Kraft gesetzt werden kann, wenn Sie einen echten Kontakt mit dieser generischen Vorlage definieren.
# grep templates /usr/local/nagios/etc/nagios.cfg cfg_file=/usr/local/nagios/etc/objects/templates.cfg Note: generic-contact is available under /usr/local/nagios/etc/objects/templates.cfg define contact{ name generic-contact service_notification_period 24x7 host_notification_period 24x7 service_notification_options w,u,c,r,f,s host_notification_options d,u,r,f,s service_notification_commands notify-service-by-email host_notification_commands notify-host-by-email register 0 }
- Name – Dies definiert den Namen der Kontaktvorlage (Generic-Contact).
- service_notification_period – Dies definiert, wann Nagios Benachrichtigungen über Dienstprobleme senden kann (z. B. Apache ausgefallen). Standardmäßig ist dies der Zeitraum 24×7, der unter /usr/local/nagios/etc/objects/timeperiods.cfg definiert ist
- host_notification_period – Dies definiert, wann Nagios Benachrichtigungen über Host-Probleme senden kann (z. B. Server abgestürzt). Standardmäßig ist dies ein Zeitraum von 24 × 7.
- service_notification_options – Hiermit wird die Art der Servicebenachrichtigung definiert, die versendet werden kann. Standardmäßig definiert dies alle möglichen Dienstzustände einschließlich Schlagereignisse. Dazu gehören auch die geplanten Service-Ausfallzeiten.
- host_notification_options – Dies definiert die Art der Host-Benachrichtigungen, die gesendet werden können. Standardmäßig definiert dies alle möglichen Host-Zustände, einschließlich Schlagereignisse. Dazu gehören auch die geplanten Aktivitäten zur Host-Ausfallzeit.
- service_notification_commands – Standardmäßig definiert dies, dass der Kontakt per E-Mail über Serviceprobleme (z. B. Datenbankausfall) benachrichtigt werden soll. Sie können auch zusätzliche Befehle definieren und diese Direktive hinzufügen. Beispielsweise können Sie Ihren eigenen Befehl "notify-service-by-sms" definieren.
- host_notification_commands – Standardmäßig definiert dies, dass der Kontakt eine Benachrichtigung über Host-Probleme (z. B. Host-Down) per E-Mail erhalten soll. Sie können auch zusätzliche Befehle definieren und diese Direktive hinzufügen. Beispielsweise können Sie Ihren eigenen Befehl „notify-host-by-sms“ definieren.
2. Definieren Sie einzelne Kontakte in der contacts.cfg
Sobald Sie bestätigt haben, dass die generischen Kontaktvorlagen richtig definiert sind, können Sie mit der Definition individueller Kontaktdefinitionen für alle Personen in Ihrer Organisation beginnen, die jemals Benachrichtigungen von Nagios erhalten würden. Bitte beachten Sie, dass die bloße Definition eines Kontakts nicht bedeutet, dass er benachrichtigt wird. Später müssen Sie diesen Kontakt entweder einer Dienst- oder einer Hostdefinition zuordnen, wie in den späteren Abschnitten unten gezeigt. Definieren Sie hier also alle möglichen Kontakte. (z. B. Entwickler, DBAs, Systemadministratoren, IT-Manager, Kundendienstmanager, Top-Management usw.)
Note: Define these contacts in /usr/local/nagios/etc/objects/contacts.cfg define contact{ contact_name sgupta use generic-contact alias Sanjay Gupta (Developer) email [email protected] pager [email protected] } define contact{ contact_name jbourne use generic-contact alias Jason Bourne (Sysadmin) email [email protected] }
3. Definieren Sie Kontaktgruppen mit mehreren Kontakten in der contacts.cfg
Sobald Sie die einzelnen Kontakte definiert haben, können Sie sie auch gruppieren, um die entsprechenden Benachrichtigungen zu senden. Beispielsweise müssen nur DBAs über die Definition des Datenbankausfalldienstes benachrichtigt werden. Daher ist möglicherweise eine db-admins-Gruppe erforderlich. Außerdem müssen möglicherweise nur Unix-Systemadministratoren benachrichtigt werden, wenn Apache ausfällt. Daher ist möglicherweise eine unix-admins-Gruppe erforderlich. Fühlen Sie sich frei, so viele Gruppen zu definieren, wie Sie für erforderlich halten. Später können Sie diese Gruppen in den einzelnen Service- und Host-Definitionen verwenden.
Note: Define contact groups in /usr/local/nagios/etc/objects/contacts.cfg define contactgroup{ contactgroup_name db-admins alias Database Administrators members jsmith, jdoe, mraj } define contactgroup{ contactgroup_name unix-admins alias Linux System Administrator members jbourne, dpatel, mshankar }
4. Kontaktgruppen oder einzelne Kontakte an Dienst- und Hostdefinitionen anhängen
Sobald Sie die einzelnen Kontakte und Kontaktgruppen definiert haben, ist es an der Zeit, sie wie unten gezeigt an eine bestimmte Host- oder Servicedefinition anzuhängen.
Note: Following host is defined under /usr/local/nagios/etc/objects/servers/email-server.cfg. This can be any host definition file. define host{ use linux-server host_name email-server alias Corporate Email Server address 192.168.1.14 contact_groups unix-admins } Note: Following is defined under /usr/local/nagios/etc/objects/servers/db-server.cfg. This can be any host definition file. define service{ use generic-service host_name prod-db service_description CPU Load contact_groups unix-admins check_command check_nrpe!check_load } define service{ use generic-service host_name prod-db service_description MySQL Database Status contact_groups db-admins check_command check_mysql_db }