Nagios vs Zabbix - infosys.tuwien.ac.at 5... · 1 Einf uhrung 2 Zusammenfassung Es gibt eine groˇe...

20
Nagios vs Zabbix Andreas Bretschneider - 0327444 Michael Opitz - 0828257

Transcript of Nagios vs Zabbix - infosys.tuwien.ac.at 5... · 1 Einf uhrung 2 Zusammenfassung Es gibt eine groˇe...

Nagios vs Zabbix

Andreas Bretschneider - 0327444Michael Opitz - 0828257

Inhaltsverzeichnis 1

Inhaltsverzeichnis

1 Einfuhrung 2

2 Ausfallserkennung und Notifications 32.1 Nagios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2 Zabbix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.3 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3 Graphische Darstellung 103.1 Nagios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.2 Zabbix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.3 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4 Lern- und Konfigurationsaufwand 124.1 Nagios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.2 Zabbix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.3 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

5 Performance und Hochverfugbarkeit 145.1 Nagios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145.2 Zabbix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145.3 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

6 Community-Unterstutzung, Weiterentwicklung und Erweiter-barkeit 156.1 Nagios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156.2 Zabbix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166.3 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

7 Sonstige Unterschiede 17

8 Fazit 18

1 Einfuhrung 2

Zusammenfassung

Es gibt eine große Anzahl von OpenSource Netzwerkuberwachungs-systemen, die fur unterschiedliche Zielgruppen und Einsatzzwecke de-signt wurden. Direkte und ausfuhrliche Vergleiche solcher Systeme fin-det man jedoch nicht im Netz. Ein Vergleich dieser Uberwachungssys-temen wurde die Wahl des Uberwachungssystems fur Netzwerkadmi-nistratoren wesentlich erleichtern. Im folgenden werden die 2 Open-Source Netzwerkuberwachungssysteme Nagios [6] und Zabbix [5] an-hand von unterschiedlichen Kriterien verglichen. Dadurch kann sichder Leser am Ende ein Bild machen, welches System fur ihn am bes-ten geeignet ist.

1 Einfuhrung

OpenSource Netzwerkuberwachungssysteme unterscheiden sich in vielerleiHinsicht. Manche Systeme zum Beispiel sind eher fur Langzeituberwachung,also hauptsachlich zur Generierung von Graphen aus z.B.: SNMP-Daten, ge-eignet. Manche sind nur fur Kurzzeituberwachung, also hauptsachlich zurUberprufung ob ein entsprechender Host bzw. ein Service auf diesem Hostgerade lauft, geeignet. Wieder andere versuchen beide Aspekte in einer Ge-samtlosung zu kombinieren. Die Frage, die sich dabei ein Netzwerkadminis-trator vielleicht stellt ist: Wie gut deckt ein bestimmtes Uberwachungssys-tem meine Bedurfnisse und Anforderungen ab? Um eine Antwort auf dieseFrage zu geben, haben wir im folgenden die beiden bekannten OpenSourceNetwerkuberwachungs-Losungen Nagios und Zabbix anhand von folgendenKriterien verglichen:

• Ausfalls-Erkennungs— und Notification-Moglichkeiten (Sektion 2).

• Unterschiede in der graphischen Darstellungsmoglichkeit (Sektion 3).

• Lern- und Konfigurationsaufwand der beiden Software-Systeme (Sek-tion 4).

• Performance/Skalierbarkeit und Hochverfugbarkeit (Sektion 5).

• Community-Unterstutzung, Weiterentwicklung und Erweiterbarkeit (Sek-tion 6).

2 Ausfallserkennung und Notifications 3

2 Ausfallserkennung und Notifications

Das Erkennen von Ausfallen von Hosts und daraufhin das Versenden vonNotifications an eine oder mehrere Personen gehort zum Herzstuck einesjeden Uberwachungssystems.

Um den Ausfall eines Systems erkennen zu konnen gibt es unterschiedli-che Typen von Uberprufungen. Zunachst einmal gibt es die Moglichkeit einService direkt auf (Layer-7) Protokoll-Ebene zu testen. Fur einen Web-Serverbedeutet dies beispielsweise, dass HTTP-Requests gemacht werden wurdenund der HTTP-Response des Servers auf Status-Codes und/oder auf einenResponse-String gepruft wird. Eine weitere Art einen Server zu uberwachenstellen sogenannte Agents dar. Ein Agent ist eine spezielle Software, die amzu uberwachenden System installiert wird und dann diverse Daten, wie etwaCPU-Auslastung, laufende Prozesse, belegter Speicher, . . . an den Uberwa-chungsserver schickt. Auf Basis dieser Daten kann dann entschieden werden,ob sich der Server in einem kritischen Zustand befindet oder nicht. Die letzteArt einen Server zu testen sind SNMP-Requests, was vor allem bei Netzwerk-geraten wie Switches oder Router eingesetzt wird. So knnen Statistiken uberdie Auslastung der Interfaces erstellt werden, um so beispielsweise eventuelleBandbreitenengpasse im Netzwerk erkennen zu konnen.

Eines der Haupt-Unterscheidungsmerkmale bei Uberwachungssystemenist die Behandlung von Dependencies. Wenn man Dependencies bei der Kon-figuration nicht berucksichtigt, kann es vorkommen, dass man mit Benach-richtigungen uber Ausfalle uberhauft wird, da Hosts, welche hinter einemausgefallenen Gerat liegen, ebenfalls vom Uberwachungssystem den Zustand“Ausgefallen” zugewiesen bekommen (siehe Abb. 1).

Eine weitere wichtige Frage, die man sich stellen sollte ist wann und anwelche Personen Notifications versendet werden sollen. Es ist in der Regelwichtig bei einem ausgefallenen Host nur eine gewisse Personengruppe, die furden ausgefallenen Host zustandig ist, zu alamieren. Daruber hinaus kann eineAnforderung sein, dass man zu verschiedenen Tageszeiten unterschiedlichePersonengruppen benachrichtigt. Schließlich kann es moglich sein, dass eseine Art Bereitschaftsdienst in einer Firma gibt, bei dem unterschiedlichePersonen zu unterschiedlichen Tagen verantwortlich fur einen gewissen Teildes Netzwerks sind.

Außerdem sollte man klaren wie die entsprechenden Personen benachrich-tigt werden sollen. Mochte man bei einem Ausfall eine SMS an die betref-fenden Personen schicken, oder “genugt” eine einfache E-Mail? Moglicher-weise ist es außerdem sinnvoll fur unterschiedliche Hosts unterschiedlicheBenachrichtigungs-Arten zu wahlen. Fallt beispielsweise ein wichtiger Web-Server aus, so sollte man eine SMS verschicken, ist aber der Papiervorrat

2 Ausfallserkennung und Notifications 4

Abbildung 1: Bei einem Ausfall von Router 1 sollte es moglich sein nur uber denAusfall des Routers 1 benachrichtigt zu werden, nicht aber uber einen Ausfall desRouters 2, dessen Status ja eigentlich aus Sicht des Uberwachungsservers Unbe-kannt ist.

eines Druckers knapp, so reicht unter Umstanden eine einfache E-Mail.Wenn ein Interface eines Hosts sich in einem sogenannten “Flapping”-

Zustand befindet, also periodisch auf die Zustande UP und DOWN wechselt,dann kann es bei manchen Netzweruberwachugnstools passieren, dass fur je-den dieser Zustandswechsel eine Benachrichtigung generiert wird. Dadurchwerden die betroffenen Personen allerdings mit vielen unnotigen Benach-richtigungen “zugemullt”. Idealerweise erkennt eine Uberwachungssoftwarediesen Umstand und verschickt dafur nur eine einzige Benachrichtigung.

Desweiteren kann es manches Mal erforderlich sein einen Host bzw. einenService, der auf einem Host lauft wegen Wartungsarbeiten kurzzeitig zu de-aktivieren, da z.B.: ein Sicherheitspatch eingespielt werden muss. Fur solcheZwecke ist es sinnvoll Notifications fur einen Host bzw. ein Service auf einemHost kurzzeitig am Uberwachungssystem deaktivieren zu konnen, um nichtunnotige Benachrichtigungen zu versenden.

Neben sogennanten aktiven Checks, die vom Netzwerkuberwachungssys-tem selbst initiiert werden, ist es außerdem noch erforderlich passive Checks,die von einem externen Gerat kommen, wie etwa SNMP-Traps, in das Systemzu integrieren.

2 Ausfallserkennung und Notifications 5

(a) Trifft eines der Statements zu, sowird keine Notification an die Person ver-schickt.

(b) Oben: die Services auf dem Host vor demAusfall. Unten: Der HTTP-Service ist ausge-fallen - aber es wurde nur eine Notification an2 Kontakte fur den HTTP-Service verschickt.

Abbildung 2: Ausfallerkennung bei Nagios.

2.1 Nagios

Die Checks in Nagios werden grundsatzlich ausschließlich uber Plugins durch-gefuhrt. Ein Plugin ist einfach nur ein ausfuhrbares Script/Programm, dasvom Nagios-Daemon ausgefuhrt wird und dessen Ruckgabewert einen Statusreprasentiert, der letzten Endes (abhangig von der genauen Konfiguration)im Uberwachugnssystem angezeigt wird. Daruber hinaus wird die Standard-Ausgabe des Plugins im Uberwachungssystem angezeigt um eventuell zusatz-liche Fehlerinformationen den verantwortlichen Personen anzeigen zu konnen.Außerdem konnen von einem Plugin auch sogenannte Performance-Daten —das sind numerische Werte, wie etwa die Dauer des HTTP-Requests oder dieAnzahl der fehlerhaften Packete bei einer SNMP-Interface-Abfrage — durchAusgabe der entsprechenden Werte vom Plugin auf die Standard-Ausgabeausgewertet werden. Grundsatzlich wird bei Nagios ein Service eher ubereine Abfrage mittels dem entsprechenden Layer-7 Protokoll getestet. Fallsdies nicht moglich ist, existieren aber auch SNMP-Plugins, die sogar ber

2 Ausfallserkennung und Notifications 6

den Package-Manager von diversen popularen Distributionen (etwa Debi-an) verfugbar sind. Daruber hinaus gibt es fur Agent-basierende Uberwa-chung das NRPE-Addon, welches CPU-Auslastung und Ahnliche Daten ei-nes Linux-, Windows-, BSD,- Mac-,. . . -Systems dem Uberwachungssystemmitteilen kann.

Nagios unterscheidet prinzipiell zwischen Hosts und Services, die auf Hostslaufen konnen. Hosts konnen einen der folgenden States haben:

• UP

• DOWN

• UNREACHABLE

Die States welche ein Service annehmen kann sind:

• OK

• WARN

• CRITICAL

• UNKNOWN

Zwischen Hosts konnen Dependencies aus Sicht des Nagios-Servers kon-figuriert werden. Zwischen Services konnen ebenfalls Abhangigkeiten defi-niert werden (siehe Abb. 2(b)). Dadurch kann man beispielsweise auch eineAbhangigkeit fur eine Web-Applikation machen, die auf ein internes Webser-vice zugreifen muss, um seine Tatigkeit zu erfullen.

Einer Host- oder Service-Gruppe konnen im Nagios mehrere Kontakt-gruppen zugewiesen werden. Daruber hinaus kann spezifiziert werden in wel-chen Zeitraum eine Gruppe eine Nachricht empfangen kann und in welchenZeitraum ein Host bzw. Service eine Benachrichtigung “erzeugen” kann. Au-ßerdem kann man konfigurieren uber welche Zustnde (UP, DOWN, UN-REACHABLE, OK, WARN, CRITICAL, UNKNOWN) man benachrich-tigt werden will. Einem Kontakt kann ein Kommando zugewiesen werden,das ausgefuhrt wird, wenn eine Notification verschickt werden soll. DiesesScript kann nun beispielsweise eine E-Mail versenden, eine SMS verschi-cken, per IM die entsprechende Person benachrichtigen,. . . Einem Kontaktbzw. einer -gruppe kann aber immer nur eine einzige Zeitspanne bzw. ei-ne Notification-Art zugewiesen werden. Um beispielsweise unterschiedlicheNotification-Arten (z.B.: in der Dienstzeit der Versand einer E-Mail, außer-halb der Versand einer SMS) zu konfigurieren muss man Kontakte mehrfachanlegen.

2 Ausfallserkennung und Notifications 7

Zusatzlich bietet Nagios auch Flapping-Detection und das Versetzen vonHosts und Services in einen Wartungsmodus an. Der Wartungsmodus kann,anders als bei einer Anderung der Konfiguration (z.B. Erstellen eines neuenHosts), uber das Webinterface aktiviert werden.

In Abbildung 2(a) wird nochmals zusammengefasst wann eine Notificati-on an einem Kontakt versendet wird.

Ist diese Art der Benachrichtigung zu unflexibel, so kann die Benach-richtigungslogik auch in das Script eingebaut werden, das verwendet wirdum Benachrichtigungen wegzuschicken. Dem Script konnen samtliche Ma-cros ubergeben werden und das Script kann daraufhin leichter intelligentereBenachrichtigungen verschicken.

SNMP-Traps und Ahnliche Benachrichtigungen von “außen” konnen eben-falls uber Nagios verarbeitet werden [13].

2.2 Zabbix

(a) Die Konfiguration von “Items” beiZabbix.

(b) “Items” werden “Trigger” zugewiesen.

(c) “Actions” bestimmen welche Gruppen benachrichtigt werden,wenn ein “Trigger” eintritt.

Abbildung 3: Die grundlegende Zabbix-Konfiguration.

2 Ausfallserkennung und Notifications 8

Uberprufungen konnen in Zabbix uber eine Agent-Software (“zabbix agent”),SNMP oder eigens geschriebene Plugins durchgefuhrt werden. Es gibt aberauch einige rudimentare integrierte Layer-7 Protokoll-Checks, wie etwa HTTPoder SMB.

An Zustanden kennt Zabbix im Gegensatz zu Nagios nur OK und PRO-BLEM, allerdings erlaubt Zabbix die Spezifikation der “Severity” (Wichtig-keit) eines Services. Die Severity des Service wird durch farbliche Hervorge-hoben angezeigt.

Ahnlich wie bei Nagios konnen bei Zabbix Hosts, die zu Hostgroups zu-sammengefasst werden, konfiguriert werden. Neben Hosts konnen, so wieauch bei Nagios, Templates definiert werden, die dann einem Host zugewie-sen werden konnen.

Einem Host (und auch einem Template) weißt man in der Regel anschlie-ßend sogenannte “Items” zu (siehe Abb. 3(a)). “Items” sind Werte, die manam entsprechenden Host abfragen will. Darunter fallen vor allem SNMP-Werte, die man Abfragen mochte, oder auch Agent-Abfragen (z.B.: CPU-Auslastung, . . . ) und externe Scripte, mit denen man etwas prufen mochte.Items konnen auch numerische Werte zuruckliefern, die uber einen gewissenZeitraum hinweg gespeichert und grafisch angezeigt werden konnen. Itemskonnen zu sogenannten Applications (Anwendungen) gruppiert werden, waszur besseren Ubersicht beitragt.

Um nun uberhaupt Nachrichten verschicken zu konnen mussen zunachstnoch Trigger konfiguriert werden (siehe Abb. 3(b)). Ein Trigger bezieht sichimmer auf ein vorher konfiguriertes Item und pruft mittels einer “Expressi-on” (einem logischen Ausdruck) ob zum Beispiel der letzte Wert eines Itemsden Wert 0 hatte, da zum Beispiel der Host nicht mehr auf PINGs antwor-tet. Expressions konnen sich auch auf Zeitspannen und Durchschnittswertebeziehen. Zwischen Triggers konnen Dependencies definiert werden.

Die eigentlichen Nachrichten werden durch sogenannte Actions verschickt(siehe Abb. 3(c)). Actions werden grundsatzlich dann ausgefuhrt wenn einTrigger “triggert” (also die Bedingung des Trigger zutrifft). Zusatzlich mussenaber noch die Bedingungen der Action erfullt sein. So kann man zum Beispielkonfigurieren, dass eine bestimmte Action nur dann ausgefuhrt werden soll,wenn die Hostgruppe, des ”Verursachers“einen bestimmten Wert hat. Sindalle Bedingungen erfullt so wird die eigentliche Aktion, namlich das Sendeneiner Nachricht an eine oder mehrere Host-Gruppen, eingeleitet.

Ahnlich wie bei Nagios gibt es auch hier die Moglichkeit externe Komman-dos aufzurufen und ggf. auch, falls das System zu unflexibel ist, zusatzlicheBenachrichtigungslogik in externe Scripte auszulagern.

Flapping Detection und einen Wartungsmodus hat Zabbix in der Version1.6.X nicht, allerdings sind diese Funktionalitaten bereits fur die nachste

2 Ausfallserkennung und Notifications 9

Version geplant.Dafur konnen mit Zabbix auch Web-Anwendungen getestet werden indem

eine Reihe von HTTP-Requests definiert wird, mit denen eine Seite abgefragtwerden soll. Die Response-Geschwindigkeit wird dabei automatisch geplottet.

Um SNMP-Traps empfangen zu konnen muss bei Zabbix, ahnlich wie beiNagios, auch Zusatzaufwand investiert werden [15].

2.3 Fazit

Bei Zabbix wird im Vergleich zu Nagios eher Agent-basierende Uberwachungund SNMP-basierende Uberwachung eingesetzt, da defaultmaßig nicht vielePlugins mitgeliefert werden, die direkt uber das Layer 7 Protokoll Anwendug-nen uberprufen. Nichtsdestotrotz ist es bei Zabbix theoretisch moglich auchsolche Tests durch selbsgeschriebene Plugins einzufuhren, allerdings stelltdas einen Mehraufwand dar. Dafur sind besonders durch XML-Templates,die die zu testenden MIB-Werte eines entsprechenden Netzwerkgerates vor-konfigurieren, bei SNMP-basierenden Uberwachungssystemen nutzlich. DenEinsatz von Agent-Software sollte man sich vorher uberlegen, schließlich mussdie Agent-Software auf allen Rechnern bei Upgrades und eventuellen Sicher-heitslucken geupdatet werden, wahrend der SNMP-Agent normalerweise mitdem Betriebssystem selbst, bzw. durch den Package-Manager geupdatet wird.

Beide Losungen besitzen einen umfassenden Support fur Benachrichti-gungen und Ausfalls-Erkennung. Nagios hat fur Hosts, die von komplettausgefallenen Hosts im Netzwerk “verdeckt” werden einen Extra-ZustandUNKNOWN bzw. UNREACHABLE. Fur Zabbix kann man dafur die “Se-verity”, also die “Wichtigkeit” eines einzelnen Services konfigurieren. Zabbixbietet daruber hinaus sehr gut integrierte Web-Checks an, mit denen manWeb-Anwendungen sehr komfortabel testen kann. Fur Nagios muss man sichdafur erst entweder ein eigenes Plugin oder ein bestehendes OSS-Plugin su-chen, und hat dann meistens aber kein Webinterface zur Verfugung uber dasman den Test konfigurieren kann.

Die Bereich in denen Zabbix (1.6.X) noch Aufholbedarf hat ist vor allemder Wartungsmodus von Hosts und Services sowie die Flapping Detection.

Das Einbinden von externen Benachrichtigungen, wie etwa SNMP-Traps,ist bei beiden Systemen etwas aufwandiger als das Konfigurieren von selbstinitierten Checks.

3 Graphische Darstellung 10

3 Graphische Darstellung

Durch die eine ubersichtliche graphische Darstellung der Netzwerk-Topologieauf sogenannten Maps kann man schnell erkennen wo sich im Netzwerk einausgefallener Host befindet und welche Hosts man aufgrund eines Ausfallsnicht mehr uberprufen kann.

Mittels Graphen kann man sich vor allem SNMP-Daten anzeigen las-sen und so feststellen ob es vielleicht irgendwo im Netz zu Bandbreiten-Engpassen kommt oder Ahnliches.

3.1 Nagios

(a) Eine NagVis Map. (b) Die Standard-Nagios Map.

Abbildung 4: Visualisierungsmoglichkeiten in Nagios.

Nagios bietet standardmaßig nur die Anzeige von einer Netzwerk-Mapan, die per Default alle konfigurierten Hosts im Netzwerk anzeigt. Man kanndie Hosts auf der Map aber auch nach Hostgruppen filtern und so nur einSubset von Hosts anzeigen. Die Map wird automatisch aus der Konfigurati-on erstellt und man kann dadurch relativ gut die Parent-Child-Beziehungen(Dependencies) zwischen den einzelnen Hosts uberprufen. Daruber hinausgibt es verschiedene Darstellungsformen der Map (kreisformig, hierarchisch,. . . ). Bei vor allem eher kleineren Netzen ist dies recht nutzlich, da man soohne Zusatzaufwand eine automatisch generierte Map bekommt, bei großerenNetzen mit vielen Hosts wird diese Standard-Darstellung aber recht schnellzu unubersichtlich.

Die Map kann durch in Konfigurationsdateien explizit angegebene X,Y-Koordinaten angepasst werden und man kann Hosts auch individuelle Gra-phiken zuweisen. Allerdings ist vor allem die Spezifikation von X,Y-Koordinatenrecht aufwandig.

3 Graphische Darstellung 11

Zusatzlich bietet Nagios auch eine 3D Map an, fur die aber wiederumexplizit X-, Y- und auch Z-Koordinaten fur jeden Host angegeben werdenmussen und die deswegen auch eher selten verwendet wird.

Bei vor allem großeren Netzen, bei denen man mehrere Maps fur unter-schiedliche Teile des Netzwerkes haben will, ist man daher auf Addons wieNagVis (siehe Abb. 4) angewiesen, mit denen auf einer Web-Oberflache perDrag and Drop und mittels eines Hintergrundbilds (meistens einem Netz-plan, den man bei einem großeren Netz sowieso haben sollte) seine Mapszusammenstellen kann [12]. Dies erfordert aber wiederum zusatzlichen In-stallationsaufwand und außerdem integrieren sich solche Addons im Normal-fall nicht besonders gut mit der Nagios-Oberflache sondern wirken eher wiefremde Applikationen, die auf dem selben Server unter einer anderen URLlaufen.

Graphen, die z.B. SNMP-Werte plotten sind in Nagios standardmaßignicht integriert. Man muss dafur zu Addons wie etwa PNP4Nagios greifen[14]. Alternativ kann man auch eine ganz andere Netzwerkuberwachungslosungwie Cacti oder MRTG einsetzen, die auf das Rendering solcher Graphen spe-zialisiert ist.

3.2 Zabbix

Abbildung 5: In Zabbix sind verschiedene graphische Features bereits integriert.

4 Lern- und Konfigurationsaufwand 12

Bei Zabbix sind sowohl Maps als auch Graphen standardmaßig integriert.Maps mussen so wie bei NagVis explizit konfiguriert werden. Dafur ist die

Konfiguration von Maps sehr gut in das Zabbix-Webinterface integriert. Eskonnen selbstverstandlich auch mehrere Maps konfiguriert werden, die jeweilseinen Teilbereich im Netzwerk abbilden. Dadurch konnen auch großere Netzedurch mehrere Maps ubersichtlich dargestellt werden (siehe Abb. 5).

Graphen konnen bei Zabbix automatisch fur alle numerischen Werte (wieetwa SNMP-Interface-Abfragen, aber auch Agent-Abfragen) per Knopfdruckgeplottet werden, was einen enormen Konfigurationsaufwand erspart. Nebenden Linien-artigen Graphiken kann man sich außerdem Pie-Charts aus denDaten erstellen lassen.

Maps und Graphen konnen auf sogenannten Screens aggregiert werden(siehe Abb.: 5).

3.3 Fazit

Bei vor allem großeren Netzen kann Zabbix bei der visuellen AufbereitungPunkten. Nagios ist zwar bei kleineren Netzen ubersichtlicher, da dort dieautomatisch erstellte Status-Map sehr ubersichtlich ist, und man leichter aus-gefallene Rechner im Webinterface findet. Bei großeren Installationen mussman sich auf Zusatz-Addons wie etwa NagVis und den Nagios Business Pro-cess Addons verlassen, mit denen man ubersichtlichere Maps und aggregierteStatus-Ansichten anzeigen lassen kann.

Desweiteren bietet Nagios standardmaßig keinen Support fur das Plottenvon beispielsweise SNMP-Daten, wahrend Zabbix diese auf Knopfdruck er-stellen kann. Wer also ohne viel Aufwand investieren zu wollen viele Graphensich anzeigen lassen will, sollte Zabbix bevorzugen.

4 Lern- und Konfigurationsaufwand

Auch der Lern- und Konfigurationsaufwand ist ein wichtiger Aspekt bei ei-nem Netzwerkuberwachungssystem. Mochte man schnell mehrere Hosts hin-zufugen oder eine Anderung an einem bestehenden Host machen, so solltedies fur einen geubten Netzwerktechniker keinen allzu großen Zeitaufwanddarstellen.

Der Lernaufwand, den man investieren muss um das System zu konfi-gurieren sollte moglichst gering sein. Schließlich mochte man erreichen, dasssich moglichst viele Mitarbeiter mit dem System auskennen, dass falls jemandunvorhergesehen durch beispielsweise Krankheit ausfallt, ein anderer fur ihneinspringen kann. Falls der Lernaufwand recht hoch ist, bedeutet das dass

4 Lern- und Konfigurationsaufwand 13

sich moglicherweise aus Kostengrunden nur wenige Personen in das Systemeinarbeiten konnen.

4.1 Nagios

Nagios wird standardmaßig uber Konfigurationsdateien mit einem Textedi-tor konfiguriert. Die Konfigurations-Sprache unterstutzt Konzepte wie Verer-bung durch Templates, wodurch das Anlegen eines oder mehrerer neuer Hostsnicht besonders aufwandig ist vorausgesetzt man hat seine Hosts geschickt inHostgroups gruppiert und/oder verwendet geschickt Templates. Der Nachteildavon ist, dass man die Konfigurationskonzepte und das Notification-Systemdafur erst einmal gut verstehen muss

Alternativ falls man keine guten Unix-Kenntnisse hat, kann man auch einKonfigurations-Addon wie etwa NConf installieren [8], mit den man Nagiosuber ein PHP-basierendes Webinterface konfigurieren kann. Dadurch erhohtsich aber der Installations- und ggf. auch der Upgrade-Aufwand.

Insgesamt ist der Lernaufwand von Nagios eher hoch, da man standardmaßigkeine visuelle Unterstutzung durch eine Web-Oberflache hat und man sichdiverse Konfigurations-Konzepte einarbeiten muss.

4.2 Zabbix

Zabbix wird standardmaßig uber ein Webinterface konfiguriert. Dadurch unddem eher leichter zu verstehenden Notification-Konzept hat man bei Zab-bix einen eher geringeren Lernaufwand. Abgesehen von der Installation undsonstigen Upgrade-Arbeiten braucht man fur die Konfiguration selbst keinebesonders guten Unix-Kenntnisse.

Wenn man allerdings viele Hosts auf einmal erstellen mochte entstehtbeim Konfigurieren unter Umstanden ein hoherer (Klick-)Aufwand.

4.3 Fazit

Hat man gute Unix-Kenntnisse und kann gut mit einem Editor und ggf. einerScriptsprache umgehen mit der man schnell viele Dateien fur viele Hostserstellen kann, dann ist Nagios in Hinblick auf den KonfigurationsaufwandZabbix eher vorzuziehen. Dafur muss man aber einen hoheren Lernaufwand inKauf nehmen. Ist man eher weniger geubt mit Editoren und Scriptsprachen,so sollte man sich fur Zabbix entscheiden.

5 Performance und Hochverfugbarkeit 14

5 Performance und Hochverfugbarkeit

Vor allem in großen Netzwerken kann es eine Rolle spielen Daten der ein-zelnen Netzwerkgerate moglichst effizient abzufragen, sodass kein unnotigerNetztraffic entsteht. Durch zu viele Einzelrequests, die allesamt lange dau-ern kann unter Umstanden die Uberwachungssoftware selbst ausgebremstwerden, da zu viele Anfragen verarbeitet werden mussen. Daruber hinauskann es manches Mal eine Anforderung sein das Uberwachungssystem hoch-verfugbar auszulegen, sodass beim Ausfall eines Servers ein Backup-Servereinspringt und das Monitoring ubernimmt.

5.1 Nagios

In riesigen Umgebungen konnen unter Umstanden Plugins, die Hosts furjeden zu uberwachenden Wert einzeln abfragen, zu Performance-Problemenfuhren. Es existieren allerdings diverse Losungen fur dieses Problem. So kannman zum Beispiel mehrere Nagios-Server einsetzen, die jeweils einen Teileines Netzwerks monitoren und dann die Resultate an einem zentralen Serveraggregieren [2]. Nagios 3 bietet außerdem eine Option an, um die Sicht vonmehreren verteilten Servern auf das Netzwerk zu ”normalisieren”, sodass manimmer eine konsistente Sicht auf das Netzwerk hat.

Daruber hinaus gibt es die Moglichkeit Plugin-Ergebnisse durch Wrapper-Plugins zu cachen, wodurch ebenfalls die Skalierbarkeit und Performancegesteigert werden kann [9].

Hochverfugbarkeit kann fur Nagios kann beispielsweise mittels Heartbeat[4] und DRBD [3] (bzw. einem SAN) erreicht werden [10].

Insgesamt konnen wir also sagen, dass es sehr große Nagios-Installationengibt, man allerdings wie bei vielen anderen Bereichen zusatzliche Arbeit in-vestieren muss, damit das System gut skaliert und ausfallsicher ist.

5.2 Zabbix

Ahnlich wie Nagios kann man mit Zabbix auch ein verteiltes Monitoring aufmehreren Zabbix-Servern durch sogenannte Proxies betreiben, die diverseStatus-Daten dann an einen zentralen Zabbix-Server weiterleiten [1].

Um die Ausfallssicherheit gewahrleisten zu konnen kann ahnlich wie beiNagios Heartbeat und DRBD (fur die Konfigurations-Dateien) eingesetztwerden. Dadurch dass Zabbix eine Datenbankanbindung benotigt, in dem esden Status der einzelnen Hosts speichert, muss diese ebenfalls in irgendeinerArt und Weise redundant ausgelegt werden. Wie genau das letztendlich im-plementiert werden kann hangt von der konkreten Datenbank ab, die zum

6 Community-Unterstutzung, Weiterentwicklung und Erweiterbarkeit 15

Einsatz kommt.Zusammenfassend kann man sagen, dass auch Zabbix fur großere Umge-

bungen geeignet ist, man aber vor allem bei einem Heartbeat Setup wiederzusatzliche Arbeit investieren muss.

5.3 Fazit

Performancemaßig sind beide Losungen ziemlich gleich zu bewerten. Durchdie großere Verbreitung von Nagios gibt es zwar mehr Nagios-Installationenbei großeren Firmen und dadurch auch mehr Losungen und Anleitungen zubekannten Problemen, allerdings ist die Konfiguration eines Zabbix-Proxieskomfortabler als die Konfiguration einer verteilten Nagios-Umgebung. Fur dieHochverfugbarkeit werden in der Regel bei beiden Losungen ahnliche Tech-niken verwendet. Bei Zabbix muss man sich zusatzlich um die Redundanzder Datenbank kummern.

6 Community-Unterstutzung, Weiterentwick-

lung und Erweiterbarkeit

Gerade die Community-Unterstutzung ist bei Open-Source-Projekten sehrwichtig, da man dadurch kostenlose Hilfestellungen bei Problemen bekommt,bzw. im Internet (in Mailinglisten, Foren, IRC-Channel-Logs . . . ) auf bereitsbekannte Probleme von anderen Leuten Losungen findet. Daruber hinausbedeutet eine großere Community im Falle von Netzwerkuberwachungssoft-ware auch mehr vorgefertigte Plugins, die unterschiedlichste Services undNetzwerkgerate auf Funktionalitat prufen.

Durch eine hohere Entwicklungsgeschwindigkeit werden die von der Com-munity gemeldeten Fehler schneller ausgebessert und daruber hinaus schnel-ler neue Features integriert, die die Arbeit des Netzwerkadministrators (hof-fentlich) erleichtern.

Durch eine gute Erweiterbarkeit ist es moglich das Uberwachungssystemin andere Systeme gut zu integrieren und das System seinen individuellenBedurfnissen anzupassen.

6.1 Nagios

Nagios ist das bekannteste OpenSource Uberwachungssystem und hat einedementsprechend große Community. Es gibt eine eigene Konferenz uber dieSoftware, bei der Experten ihre Erfahrungen austauschen konnen. Der IRC-Channel wird ungefahr von 120 Usern besucht.

6 Community-Unterstutzung, Weiterentwicklung und Erweiterbarkeit 16

Nagios profiliert vor allem durch seine gute Erweiterungsmoglichkeiten.Die Software selbst bietet zwar “nur” das sehr orthogonale Plugin-Interface,mit den man durch das Aufrufen von beliebigen Programmen/Scripten Sta-tusinformationen uber Hosts integrieren kann, ein “Command-File”-Interface,uber das man von externer Quelle aus Status-Informationen von Hosts in Na-gios integrieren kann (z.B.: SNMP-Traps), sowie ein Event-Broker-Interface,an das Statusmeldungen weitergeleitet werden konnen. Nichtsdestotrotz gibtes zahlreiche Plugins fur das Plugin-Interface, die diverse Netzwerk-Gerateprufen, sowie zahlreiche Addons, die das Interface erweitern [7]. Darunter fal-len unter Anderem die NDO-Utils, die die Status-Meldungen von Nagios uberdas Event-Broker-Interface in eine Datenbank schreiben konnen von der ausviele andere Addons, wie etwa NagVis, auf Status-Informationen zugreifenkonnen, um diese in diesem Fall auf einem Netzwerkplan zu visualisieren.

Die Entwicklungsgeschwindigkeit von Nagios ist dadurch, dass nur ein ein-ziger US-Entwickler daran arbeitet und dieser nicht besonders gut mit derCommunity zusammenarbeitet und in der Vergangenheit nicht viele Patchesintegriert hat, eher trage. Dies ist auch ein Grund dafur, dass das Projektgeforkt wurde. Der sehr vielversprechende Fork Icinga, der von nahmhaf-ten Personen aus der Community weiterentwickelt wird und abwartskom-patibel zu Nagios ist, liegt mittlerweile in einer 1.0er Version vor [11]. Zieldes Projektes ist es das etwas betagte Webinterface zu modernisieren, denDatenbank-Support zu integrieren, sowie diverse zusatzliche Addons zu in-tegrieren. Dabei soll die Grundarchitektur und damit auch die Abwartskom-patibilitat erhalten bleiben.

6.2 Zabbix

Obwohl Zabbix eine etwas kleinere Community hat als Nagios findet mandurchaus genugend Hilfestellungen zu Problemen, Erfahrungswerte und der-gleichen. Es exisiteren fur Zabbix eher weniger Addons und Plugins als furNagios, was teilweise auch daran liegt, dass viele Dinge bereits in der Softwareintegriert sind. Zwar existiert ein ahnlich orthogonales Plugin-Interface wiefur Nagios, allerdings werden bei Zabbix eher die Standard-SNMP-Pluginsund der Zabbix-Agent fur Abfragen verwendet.

Die Entwicklungsgeschwindigkeit ist im Vergleich zu Nagios schneller unddie Beziehung zwischen Community und Entwickler “gesunder”.

6.3 Fazit

Legt man viel Wert auf Erweiterbarkeit, so sollte man sich eher fur Nagiosentscheiden. Durch die Vielzahl an Addons existieren fur sehr viele Anfor-

7 Sonstige Unterschiede 17

derungen bereits Losungen. Muss man dennoch einmal selbst Hand anlegenund selbst ein Plugin oder Addon schreiben, so findet man durch die bereitsexistierenden Addons und Plugins genug Beispiel-Code und Leute, die einemggf. bei Fragen helfen konnen.

Ist man mit dem Standard-Zabbix-Umfang allerdings zufrieden, so sollteman sich fur Zabbix entscheiden. Bei vielen Addons kann es unter Umstandennamlich beim Upgrade zu Problem kommen. Verhalt sich eine neue NagiosVersion anders als ein Vorganger so kann es sein dass ein Addon durch dieseAnderungen nicht mehr funktioniert (es “breaked”). Man kann sich das sovorstellen als wurde man eine Brucke zwischen 2 Versionen bauen. Machtman ein Upgrade einer Version, so droht diese Brucke zusammenzubrechen.

7 Sonstige Unterschiede

Abbildung 6: Das Dashboard in Zabbix kann personalisierte Informationen uberServer anzeigen.

Legt man als Netzwerk-Verantwortlicher vor allem Wert auf das Ein-richten von unterschiedlichen User-Accounts, die allesamt fur einen Teilbe-reich des Netzwerks zustandig sind und eine dementsprechend personalisierteOberflache haben wollen, sollte man sich fur Zabbix entscheiden. Zabbix bie-tet fur jeden User ein personalisiertes ”Dashboard“an, auf dem man sichInformationen, Maps und Graphen jener Hosts anzeigen lassen kann, fur dieman auch zustandig ist (siehe Abb. 6). Damit sieht man den Status sei-nes Teilbereiches vom Netzwerk stets auf einen Blick. User-Accounts werdenstandardmaßig in der Datenbank gespeichert, in der auch die Monitoring-Daten abgelegt werden. Man kann allerdings auch eine Anmeldung uber LD-AP aktivieren. Dabei ist nur zu beachten, dass der Verzeichnisdienst-Server

Literatur 18

moglichst redundant ausgelegt werden sollte, da man sich unter Umstandenbeim Ausfall des LDAP-Servers nicht mehr am Uberwachungsserver anmel-den kann.

Nagios bietet kein personalisierten Features wie etwa Dashboards fur un-terschiedliche User an. Die Authentifizierung erfolgt in der Regel uber HTTP-Basic- bzw. HTTP-Digest-Authentication, die nur uber den Web-Server ge-handelt wird. Daher ist es auch moglich eine LDAP-basierende Anmeldung,oder auch eine “gemischte” Anmeldung (File-basierend + LDAP) zu imple-mentieren.

Eine weitere unter Umstanden nutzliche Funktion von Zabbix ist Netzwerk-Discovery, die es ermoglicht durch periodische PINGs in einem Sub-Netz neueHosts zu finden.

8 Fazit

Zabbix ist eine gut integrierte All-In-One Losung, die sich auch fur großereNetzwerke eignet, vorausgesetzt man es schafft in der tabellarischen Ansichtuber die Hosts die Ubersicht zu behalten. Der Lernaufwand ist im Vergleichzu Nagios geringer, da der Notification-Prozess nicht allzu kompliziert ist,und man vor allem ein benutzerfreundliches, visuelles Webinterface hat, indem man sofort alle moglichen Konfigurationsparameter sieht. Hat man al-lerdings umfassende Unix-Kenntnisse und mochte man sich das System nachseinen eigenen Vorstellungen anpassen, so wird man bei Zabbix wohl oderUbel mehr Aufwand investieren mussen als bei Nagios.

Nagios kann vor allem gegenuber Zabbix mit Erweiterbarkeit punkten.Hat man gute Unix-Kenntnisse und kann gut mit einem Editor und einerScriptsprache umgehen, so kann man mit zusatzlichen Lernaufwand auchgroßere Konfigurationsanderungen schnell durchfurhen. Durch die autogene-rierte Status-Map hat man in kleineren Netzen sofort eine gute Ubersichtuber das Netzwerk, aber auch in großeren Netzen kann sie als Kontrolle ”fu-er die richtige Konfiguration von Dependencies dienen. Man sollte sich abernaturlich stets vor Augen halten, dass eine Vielzahl von installierten Add-ons auch einen großeren Upgrade-Aufwand bedeuten kann. Langerfristig wirdsich diese Situation mit dem Icinga-Fork wohl bessern.

Literatur

[1] 14. Use of Proxies [Zabbix]. http://bit.ly/8dCjrA, Abruf: Sonntag,20. Dezember 2009

Literatur 19

[2] Distributed Nagios. http://bit.ly/7C4mCy, Abruf: Sonntag, 20. De-zember 2009

[3] DRBD:What is DRBD. http://www.drbd.org/, Abruf: Sonntag, 20.Dezember 2009

[4] HomePage: Linux HA. http://www.linux-ha.org/, Abruf: Sonntag,20. Dezember 2009

[5] Homepage of Zabbix. http://zabbix.com, Abruf: Sonntag, 20. Dezem-ber 2009

[6] Nagios. http://nagios.org/, Abruf: Sonntag, 20. Dezember 2009

[7] Nagios Exchange. http://exchange.nagios.org, Abruf: Sonntag, 20.Dezember 2009

[8] NConf - Enterprise Nagios configurator. http://www.nconf.org, Ab-ruf: Sonntag, 20. Dezember 2009

[9] NETWAYS GmbH - check cache. http://bit.ly/4yEn4h, Abruf: Sonn-tag, 20. Dezember 2009

[10] Netways Nagios HA Presentation. http://bit.ly/8a6Cr1, Abruf:Sonntag, 20. Dezember 2009

[11] Open Source Monitoring - Icinga. http://www.icinga.org, Abruf:Sonntag, 20. Dezember 2009

[12] Project News — NagVis.org. http://nagvis.org, Abruf: Sonntag, 20.Dezember 2009

[13] SNMP Traps - NETWAYS GmbH. http://bit.ly/7HbJ1D, Abruf:Sonntag, 20. Dezember 2009

[14] start [pnp4nagios.org]. http://www.pnp4nagios.org/, Abruf: Sonntag,20. Dezember 2009

[15] Using Zabbix to capture SNMP-Traps [Zabbix]. http://bit.ly/4AWvU6,Abruf: Sonntag, 20. Dezember 2009