Nagios bietet eine große Menge an Funktionen, die alle über Skripte konfiguriert werden können. Es wesentliches Feature ist die Benachrichtigung von Administratoren beim Eintreten eines definierten Ereignisses.
Anlegen von Kontakten
Die Kontakte sind standardmäßig in der Datei contacts.cfg zu finden. Ich habe die Datei in den Ordner /etc/nagios3/conf.d/contacts geschoben, der Übersichtlichkeit wegen.
Es gibt zwei Arten von Kontakten, die man definieren kann
- Einzel Kontakte, z.B. Personen
- Kontaktgruppen
Kontakte
In der Standardinstallation von Nagios ist bereits eine ausreichende Konfiguration vorhanden, die man ohne größere Probleme an die eigenen Bedürfnisse anpassen kann.
define contact{ contact_name stefan alias Stefan service_notification_period workhours host_notification_period workhours service_notification_options w,u,c,r host_notification_options d,r service_notification_commands notify-service-by-email host_notification_commands notify-host-by-email email }
Die workhours werden in der Datei timeperiods_nagios2.cfg hinterlegt. Die Benachrichtigungen an diesen Kontakt werden nur in seiner Arbeitszeit versendet.
service_notification_options und host_notification_options, hier wird definiert welche Benachrichtigungen der Admin erhalten soll. Die Buchstaben stehen für
- n = NONE
- w = WARNING
- c = CRITICAL
- r = RECOVERY
Mit dem Befehl notify-service-by-email wird festgelegt, dass Nagios den Kontakt via E-Mail benachrichtigen soll.
Nach diesem Beispiel kann man nun beliebig viele Kontakte definieren. Umständlich wird es, wenn die Kontakte unterschiedliche Benachrichtigungen erhalten sollen und evtl. für Gerätegruppen zuständig sein sollen. Eine denkbare Möglichkeit, es sind mehrere Administratoren für die Administration und Wartung der Drucker verantwortlich.
In einem solchen Fall ist es für die Nagios-Administration einfacher, die einzelnen Kontakte nochmal in Kontaktgruppen zusammen zufassen.
Kontaktgruppen
Die Kontaktgruppen können in der gleichen Datei wie die Kontakte konfiguriert werden.
define contactgroup{ contactgroup_name admins alias Nagios Administrators members stefan }
Das Einzige was zu beachten ist, members = contact_name. Schreibfehler verzeiht Nagios nicht, deshalb unbedingt zweimal kontrollieren. Members werden durch Kommas getrennt eingegeben, z.B. stefan, admin1, admin2. Der Alias ist frei wählbar.
Nachdem nun die Kontakte und Kontaktgruppen angelegt worden sind, kann begonnen werden sie auf einzelne Services zuzuordnen.
Services
In der Standardkonfiguration von Nagios sind bereits Services definiert. Sie sind in der Datei generic-service_nagios2.cfg zu finden. Die einzelnen Punkte sind in der Datei selbst sehr gut dokumentiert, dehalb werde ich darauf nicht näher eingehen.
contact_groups hier werden die frisch angelegten Kontaktgruppen den Services zugewiesen. Es können mehrere Gruppen durch Komma getrennt eingegeben werden.
define service{ name generic-service ; The 'name' of this service template active_checks_enabled 1 ; Active service checks are enabled passive_checks_enabled 1 ; Passive service checks are enabled/accepted parallelize_check 1 ; Active service checks should be parallelized (disabling this can lead to major performance problems) obsess_over_service 1 ; We should obsess over this service (if necessary) check_freshness 0 ; Default is to NOT check service 'freshness' notifications_enabled 1 ; Service notifications are enabled event_handler_enabled 1 ; Service event handler is enabled flap_detection_enabled 1 ; Flap detection is enabled failure_prediction_enabled 1 ; Failure prediction is enabled process_perf_data 1 ; Process performance data retain_status_information 1 ; Retain status information across program restarts retain_nonstatus_information 1 ; Retain non-status information across program restarts notification_interval 5 ; Only send notifications on status change by default. is_volatile 0 check_period 24x7 normal_check_interval 5 retry_check_interval 1 max_check_attempts 4 notification_period 24x7 notification_options w,u,c,r contact_groups admins register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE! }

ist absolut technik-begeistert und großer Fan von Linux und Open Source. Raspberry Pi Bastler der ersten Stunde und nach wie vor begeistert von dem kleinen Stück Hardware, auf dem er tolle Projekte umsetzt. Teilt hier seine Erfahrungen mit Nextcloud, Pi-hole, YubiKey, Synology und openmediavault und anderen spannenden IT-Themen. Nutzt Markdown und LaTeX zum Dokumentieren seiner Projekte und Gitea zum Versionieren. Sitzt vor einem 49“ Monitor, nutzt Windows und MacOS zum Arbeiten, Linux auf seinen Servern und virtuellen Maschinen und hört dabei Spotify und MP3s und Radio-Streams über seinen RadioPi.