Nagios

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Nagios
Nagios service detail.png
Screenshot der „Service Detail“-Seite von Nagios
Basisdaten
Entwickler Ethan Galstad
Aktuelle Version 4.0.4
(14. März 2014[1])
Betriebssystem Unix-Derivate
Kategorie Netzwerk-Monitoring
Lizenz GNU GPL (Freie Software)
Deutschsprachig nein
nagios.org
Die Arbeitsweise von Nagios

Nagios ist der Name einer Software, die dem Monitoring komplexer IT-Infrastrukturen dient.

Nagios bietet dazu eine Sammlung von Modulen zur Überwachung von Netzwerken, Hosts und speziellen Diensten sowie eine Web-Schnittstelle zum Abfragen der gesammelten Daten. Es steht unter der GNU GPL, ist also freie Software und läuft unter zahlreichen Unix-ähnlichen Betriebssystemen. Nagios und das Nagios-Logo sind in den USA eingetragene Warenzeichen von Ethan Galstad.

Der Name Nagios ist offiziell ein rekursives Akronym, welches sich auf den ursprünglichen Namen der Software (NetSaint) bezieht, und bedeutet ausgeschrieben Nagios Ain't Gonna Insist On Sainthood, inoffiziell wird er jedoch auch als Synonym für den früheren Namen interpretiert (Network + griechisch ἅγιος hagios ‚heilig‘)[2].

2007 wurde die Nagios Enterprises LLC von Ethan Galstad gegründet, welche Consulting und technische Unterstützung rund um das Thema Nagios als kommerzielle Dienstleistung anbietet. Die Kern-Software selbst bleibt weiterhin unter einer freien Lizenz.

Bedeutung[Bearbeiten]

Trotz Konkurrenz sowohl durch freie wie auch durch kommerzielle Überwachungssoftware ist Nagios wegen seiner großen Verbreitung auch im professionellen Einsatz ein Quasi-Standard geworden.[3] Dies ist sicherlich auf das große Engagement einer Vielzahl von Software-Entwicklern, der von ihnen produzierten Zusatzprogramme, der kostenlosen Verfügbarkeit der Software sowie insbesondere auf die einfache Anpassungs- und Erweiterungsfähigkeit bei speziellen Überwachungsaufgaben zurückzuführen.

Arbeitsweise[Bearbeiten]

Zentrale Begriffe der Konfiguration und Komponenten[Bearbeiten]

Der eigentliche Nagios-Prozess basiert im Wesentlichen auf einer objektorientierten Konfiguration von

Hosts
die im Wesentlichen über ihre IP-Adresse definiert sind,
Services
die zu überwachenden Eigenschaften eines Host,
Kommandos
die zur Überwachung, zur Alarmierung oder anderen Zwecken ausgeführt werden sollen und
Kontakten
die im Alarmfall zu verständigen sind.

Ein "Service" kann dabei ein von einem Host zur Verfügung gestellter Dienst (z. B. HTTP, FTP, SSH, …), eine interne Eigenschaft eines Host (z. B. der noch verfügbare Festplattenplatz, Speicher- und CPU-Auslastung, Uptime, interne Fehlermeldungen, …) oder die über entsprechende Zusatzhardware messbaren Umweltbedingungen (z. B. Temperaturwerte, Luftfeuchtigkeit, Füllstände von Flüssigkeitstanks, …) sein.

Software-Komponenten[Bearbeiten]

Für eine einfache Grundinstallation von Nagios ist die Installation zumindest noch folgender Software-Komponenten erforderlich:

Neben der Nagios Kern-Software benötigt man noch die Nagios Plug-ins: Das sind eine Reihe von Zusatzprogrammen (Modulen), die die eigentlichen Überwachungsabfragen durchführen und (gemäß ggf. vorzugebender Parameter) auswerten.

Überwachungsmethoden[Bearbeiten]

Da einige Testmethoden auf Protokollebene arbeiten (TCP, UDP, SNMP, …), ist es möglich, verschiedene Betriebssysteme, aber auch Netzwerkgeräte oder andere technische Geräte mit einer entsprechenden, für die Überwachung eingerichteten Netzwerkschnittstelle (z.B. eine USV) zu überwachen.

Zur Überwachung interner Eigenschaften von Rechnern müssen Plug-ins meist direkt auf den Hosts ausgeführt werden. Dazu ist z. B. ein exekutiver Fernzugriff auf den Host erforderlich, was aber entweder bei sicherem Zugriff z. B. per SSH mit einer unverhältnismäßigen CPU-Belastung (auf beiden Seiten) verbunden ist oder wegen der für die Ausführung erforderlichen administrativen Privilegien als sicherheitsbedenklich erachtet wird. Eine andere Möglichkeit ist die Installation weiterer Programme ("Add-ons") auf den Hosts, die nur lokal vorkonfigurierte (und damit nicht missbrauchbare) Systemabfragen ausführen können (standardmäßig NRPE[4], der Nagios Remote Plugin Executor, oder z. B. auch NSClient oder NC_Net). Die Kommunikation zwischen diesen Programmen und dem Nagios-Server (Abfrage und Ergebnisübermittlung) erfolgt dann über eigene definierbare Netzwerk-Ports.

Eleganter, wenn auch schwieriger zu konfigurieren, ist die passive Überwachung z. B. mit dem Addon Nagios Service Check Acceptor (NSCA) oder via SNMP-Traps (z. B. mittels des Frontends NagTrap).

Überwachungsmodule und ihre Standards[Bearbeiten]

Neben den Standardmodulen und einer Vielzahl weiterer kostenlos verfügbarer Nagios Plug-ins können auch eigene Module auf einfache Weise mit Hilfe einer Programmiersprache, wie z. B. Perl, C, C++, Java, C#, Python oder PHP erstellt werden. Die Module müssen lediglich die Nagios Richtlinien für Plug-ins[5] beinhalten, d. h. vor allem müssen sie bei ihrer Beendigung den ermittelten Status als POSIX-konformen Rückgabewert an den aufrufenden Prozess (Nagios-Dienst) übergeben und Ausgaben an die Standardausgabe tätigen.

Der Statuswert teilt hierbei mit,

  • ob das überprüfte Objekt (Dienst/Host) in Ordnung war (OK, Wert 0),
  • ob es zu einer Warnmeldung kam (WARNING, Wert 1),
  • ob es sich um einen kritischen Fehler handelte (CRITICAL, Wert 2) oder
  • der Status nicht ermittelbar/unbekannt ist (UNKNOWN, Wert 3).

Bei vielen Überprüfungen kann man beim Aufruf des Moduls als Parameter Alarmschwellenwerte für Warn- und Fehlerzustände angeben: Über- oder unterschreitet der Messwert diese Grenzwerte, ändert sich der Status des Dienstes entsprechend.

Die Daten, die an die Standardausgabe gesendet werden, enthalten normalerweise eine Statusmeldung, eventuell weitere Detailinformationen und ggf. auch Messwerte und werden 1:1 in der Web-Oberfläche als Zusatzinformationen angezeigt. Die so erfassten Messwerte („Performancedaten“) können weiter bearbeitet und insbesondere für eine Langzeiterfassung gespeichert werden. An diese Möglichkeit knüpfen diverse Zusatzprogramme zur Erstellung von Graphen an.

Alarmierungslogik[Bearbeiten]

Sobald ein Dienst bzw. ein Host den Status ändert und nach einer vorkonfigurierbaren Anzahl von Wiederholungen der Abfrage bei diesem Status bleibt, wird der geänderte Status als gegeben angesehen („hard state“) und erst dann folgen weitere Aktionen:

  • Es wird ein Alarm ausgelöst, wobei untereinander bestehende Abhängigkeiten durch entsprechende Konfiguration berücksichtigt werden können: So kann man alle zusätzlich überwachten Eigenschaften eines Hosts als abhängig von der Erreichbarkeit des Hosts definieren und so bei einem Ausfall des Hosts die Meldungen über dessen einzelne Dienste unterdrücken.
  • Es können vorkonfigurierte Ereignisaktionen gestartet werden.

Meldewege[Bearbeiten]

Nagios alarmiert die vorkonfigurierten Kontaktpersonen über diverse Kanäle (z. B. E-Mail, SMS, Pager, IM-Messages, Telefonanrufe, …). Dabei besteht auch die Möglichkeit, festzulegen, in welcher Reihenfolge Meldungen an weitere Kontaktpersonen erfolgen sollen, wenn eine Störung nach den ersten Meldungen nicht behoben wurde (Eskalationsmanagement).

Distributed Monitoring[Bearbeiten]

Um ein Nagios-System ausfallsicher, redundant und fehlalarmsicherer zu gestalten, gibt es die Möglichkeit des Setups als Distributed Monitoring sowie des Redundant/Failover-Monitoring. Bei verteiltem Monitoring werden mehrere, dezentral installierte Nagios-Instanzen genutzt, die ihre Ergebnisse mittels NSCA an einen zentralen Nagios-Server senden, der sie als passive Checks verarbeitet. Bei redundantem Monitoring arbeiten zwei Nagios-Instanzen parallel wie bei einem Clusternode und halten sich mit einem Heartbeat gegenseitig auf dem Laufenden. Neben der NSCA Methode gibt es auch hierauf spezialisierte Erweiterungen wie Mod-Gearman, Merlin oder DNX.

Zusatzprogramme[Bearbeiten]

Nagios kann mit Add-ons erweitert werden. Beispiele hierfür sind:

  • Nmap2Nagios-NG: Addon zur automatischen Generierung von Konfigurationsdateien
  • Centreon: Addon zur Konfiguration und zum Monitoring via Webinterface
  • Nagvis: Addon zur Visualisierung der Überwachungsergebnisse
  • monarch: (Veraltete) Administrationsoberfläche für Nagios 1.x und 2.x
  • Groundwork Monitor Community Edition: Administrationsoberfläche für Nagios 2.x und 3.x (Nachfolger von Monarch)
  • NConf: Webgestützte Administrationsoberfläche für Nagios 3.x
  • NagiosQL: Webgestützte Administrationsoberfläche für Nagios 2.x und 3.x
  • PerfParse: Datenbankanbindung zur Verarbeitung der von Nagios gesammelten „Performancedaten“
  • PNP: Tool zur Generierung von Graphen aus den von Nagios gelieferten Daten
  • Check_MK: Addon zum vereinfachten und beschleunigten Betriebssystem- und SNMP-Monitoring
  • Nagios Business Process AddOns: Erweiterung um statt einzelne Komponenten ganze Anwendungen („Geschäftsprozesse“) zu überwachen
  • NagiosGrapher: Tool zur Generierung von Graphen anhand von Nagios-Performancedaten, welches sich automatisch ins Web-Frontend von Nagios einbettet
  • NagiosEventDB: Ereignisdatenbank für Nagios z. B. für SNMPTraps, Syslog-Meldungen, ...
  • N2RRD Add-on für Nagios zum Speichern der Performance-Daten in Round-Robin-Datenbanken; enthält zusätzlich den Viewer „rrd2graph“, mit dem sich die gespeicherten Daten betrachten lassen
  • Nagios-virt: Zur Überwachung von virtuellen Maschinen mithilfe der libvirt-Schnittstelle.
  • Thruk: Verbesserte Weboberfläche für große und verteilte Umgebungen
  • Mod-Gearman: Addon für verteiltes Monitoring

Weiterhin gibt es Programme, die Nagios überwachen und Ereignisse melden:

  • Nagios Checker: ein Addon für Mozilla Firefox
  • nagstamon: Nagios Status Monitor für den Desktop
  • NagiosCenter: Webanwendung mit Übersichten um mehrere Nagios Server gleichzeitig zu betreiben und zu überwachen

Icinga, Shinken und Naemon[Bearbeiten]

Im Mai 2009 hat eine Gruppe von Nagios-Entwicklern den Nagios-Fork Icinga gegründet.[6] Er zeichnet sich durch eine modernere Weboberfläche aus, zusätzliche Datenbankkonnektoren (z.B. für MySQL und PostgreSQL) und einen dynamischeren Entwicklungsprozess als Nagios, sodass Patches schneller angewendet werden und mehr Rücksicht auf die Community genommen wird.

Im Sommer 2009 begann Jean Gabès, Nagios in der Programmiersprache Python neu zu programmieren. Die schleppende Weiterentwicklung des in die Jahre gekommenen C-Codes und die monolithische Architektur von Nagios hatten ihn zu diesem Schritt veranlasst. Sein Proof-of-concept mit dem Namen Shinken verteilt die Aufgaben des Monitoring-Systems auf mehrere spezialisierte und ggf. redundant vorhandene Prozesse und soll dadurch in der Lage sein, eine weitaus größere Zahl von Endgeräten zu überwachen als ein herkömmliches Nagios-System. Im Dezember 2009 schlug Jean Gabès auf der nagios-devel-Mailingliste[7] vor, Shinken als Grundlage für ein künftiges Release 4 von Nagios zu verwenden. Dieser Vorschlag wurde von einigen Mitgliedern der Mailingliste begrüßt, aber es wurden auch deutliche Zweifel laut, ob die Programmiersprache C wirklich ersetzt werden sollte, weil unter anderem nicht mehr die Kompatibilität mit anderer Software gegeben wäre. Obwohl dieses Angebot weiterhin gilt, wird Shinken seitdem als eigenständiges Projekt entwickelt.[8]

Im Oktober 2013 kündigte Andreas Ericsson, der Hauptentwickler der Nagios Core Version 4 einen neuen eigenen Fork Naemon (Networks, Applications and Event Monitor) an[9], nachdem er als Hauptentwickler von Nagios Enterprises aus dem Entwicklerteam ausgeschlossen worden war[10]. Naemon ist wie die bisherigen Versionen von Nagios in der Programmiersprache C geschrieben, die CGI-Weboberfläche wurde jedoch durch die Thruk FastCGI Oberfläche (Perl) ersetzt. Naemon wird unter der GNU GPL veröffentlicht.

Kritik[Bearbeiten]

Trademarkpolitik[Bearbeiten]

Nagios Enterprise gerät zunehmend wegen seiner rigiden Trademarkpolitik in die Kritik. So mussten sich mehrfach Opensource-Projekte und -Webseiten, welche den Namen Nagios verwendeten, auf Druck von Nagios Enterprise umbenennen. Vorangegangen ist jeweils eine Auseinandersetzung über Namensnennung von Nagios im Zusammenhang mit daraus hervorgegangenen Forks.

  • 23. Februar 2010: monitoring-fr.org[11], ehemals nagios-fr.org
  • 23. Mai 2012: monitoring-portal.org[12], ehemals nagios-portal.de
  • 16. Januar 2014: monitoring-plugins.org[13], ehemals nagios-plugins.org

Nagios-Plugin Übernahme[Bearbeiten]

Am 16. Januar wurde ohne Rücksprache die Webseite des bis dahin unabhängig geführten Nagios-Plugins Projekts auf Webserver der Nagios Enterprise LLC umgezogen. Das bisherige Team nannte sich daraufhin in Monitoring-Plugins um und führt das Projekt seither auf monitoring-plugins.org[14] fort. Als Grund hierfür nannte Ethan Galstad eine vorangegangene Auseinandersetzung der Nennung von Nagios Forks (Naemon, Icinga und Shinken) auf der Nagios Plugins Webseite.

Siehe auch[Bearbeiten]

Literatur[Bearbeiten]

  • Wolfgang Barth, Christian Schneemann, Tobias D. Oestreicher: Nagios – System- und Netzwerk-Monitoring, 3. Auflage, Open Source Press, 2012, ISBN 978-3-941841-25-3.
  • Tobias Scherbaum: Praxisbuch Nagios, O’Reilly, 2009, ISBN 978-3-89721-880-2.
  • Gerhard Laußer: Nagios – Das Praxisbuch, Addison-Wesley, 2009, ISBN 978-3-8273-2800-7.
  • Max Schubert u.a.: Nagios 3 Enterprise Network Monitoring, Syngress, 2008, ISBN 978-1-59749-267-6.
  • David Josephsen: Building a Monitoring Infrastructure with Nagios, Prentice Hall, 2007, ISBN 0-13-223693-1.
  • James Turnbull: Pro Nagios 2.0, Apress, San Francisco 2006, ISBN 1-59059-609-9.
  • Taylor Dondich: Network Monitoring with Nagios, O’Reilly, 2006, ISBN 0-596-52819-1.
  • Götz Rieger: Nagios’ neue Kleider – kurz vorgestellt, Netzwerküberwachung, Nagios, MySQL, PHP […], c’t 12/06, S. 70.
  • Götz Rieger: Netzwerk unter Kontrolle – Netzwerküberwachung mit Nagios, c’t 3/06, S. 206.
  • Alexander Schreiber: Wachsamer Schutzheiliger – System-Monitoring mit Nagios, iX 12/03, S. 70.

Einzelnachweise[Bearbeiten]

  1. Nagios 4.x Version History
  2. Ethan Galstad: official FAQ Nagios: FAQs : What does Nagios mean? (EN) In: Nagios: Frequently Asked Questions. Nagios Enterprises, LLC. 3. Mai 2003. Abgerufen am 6. März 2009: „The official meaning is that N.A.G.I.O.S. is a recursive acronym which stands for "Nagios Ain't Gonna Insist On Sainthood".“
  3. Nagios: The Industry Standard in IT Infrastructure Monitoring (EN) Nagios Enterprises, LLC. Abgerufen am 14. Oktober 2010: „With an estimated 250,000 users worldwide, Nagios is the undisputed industry standard in enterprise-grade Open Source monitoring.“
  4. Ethan Galstad: Nagios: Official NRPE Documentation (EN, PDF; 207kB) In: Nagios – NRPE Documentation. S. 2. 1. Mai 2007. Abgerufen am 14. Oktober 2010.
  5. Nagios plug-in development guidelines (EN) Nagios Plugins Development Team. Abgerufen am 14. Oktober 2010.
  6. ICINGA: Abspaltung von Nagios vollzogen. Abgerufen am 3. Juli 2011.
  7. New Nagios implementation proposal. In: Gmane.org. 1. Dezember 2009 (englisch).
  8. shinken-monitoring.org (englisch)
  9. The naemon website. Abgerufen am 24. November 2013.
  10. Patricia Jung: Abschied von Nagios?, in iX 12/2013, S. 19.
  11. zdnet.de. Abgerufen am 23. Januar 2014.
  12. monitoring-portal.org. Abgerufen am 23. Januar 2014.
  13. monitoring-plugins.org. Abgerufen am 23. Januar 2014.
  14. monitoring-plugins.org (englisch)

Weblinks[Bearbeiten]