Checkmk im Einzelhandel bei EDEKA

Installationen mit über 1.200 eigenständigen Nagios-Servern sind sicher nicht alltäglich. Solche Umgebungen zu verwalten ist in der Regel mehr als ein Fulltime-Job. Auch die weiteren Zahlen dieses Nagios-Projektes sind beeindruckend: Jeder der 1.200 Server überwacht Stand heute durchschnittlich 25 Hosts und 250 Services. Das summiert sich auf 300.000 Services, die jeweils einmal pro Minute abgefragt werden! Alle diese Informationen werden in einer zentralen Instanz zusammengefasst, visualisiert und ausgewertet.

EDEKA Minden-Hannover in Kürze

Karte mit Edeka-Märkten

EDEKA Minden-Hannover ist mit einem Umsatz von 6,9 Milliarden Euro in 2011, 32.000 Mitarbeitern und etwa 1.600 Einzelhandelsstandorten die größte der bundesweit sieben EDEKA-Regionalgesellschaften. Das Geschäftsgebiet erstreckt sich von der holländischen bis an die polnische Grenze. Es umfasst einen Teil von Ostwestfalen, fast ganz Niedersachsen sowie die Bundesländer Bremen, Sachsen-Anhalt, Berlin und Brandenburg.

Die Ausgangssituation

Bei EDEKA Minden-Hannover wurde nach einer kostengünstigen, flexiblen und zeitgemäßen Lösung für das Monitoring der Märkte und einiger zentraler Systeme gesucht. Schnell war die Open Source Software Nagios im Gespräch. Wie auch in vielen anderen Unternehmen wurde Nagios erst einmal per Hand installiert und nach und nach durch Addons wie NSCA, NagVis etc. ergänzt. Nach kurzer Zeit wurde jedoch klar, dass so ein klassisch aufgesetztes Nagios schnell an seine Grenzen stößt. Ein problematischer Punkt war die starke Netzwerklast durch viele einzelne Checks. Außerdem stellte sich heraus, dass man selbst mit grafischen Konfigurationstools wie NConf an die Grenzen des verkraftbaren Verwaltungsaufwandes stößt. Mit der Zeit machten sich auch Performanceengpässe auf dem zentralen Nagios-Server bemerkbar. Der erste Kontakt mit der damaligen Mathias Kettner GmbH (nun tribe29 GmbH) kam über das Nagios-Addon Checkmk zustande. In einem dreitägigen Workshop wurden gemeinsam Ideen und Konzepte für ein modernes, agiles monitoring entwickelt.

Die wichtigsten Anforderungen

  • Die überwachten Daten sollten an zentraler Stelle zusammenlaufen, damit eine Übersicht über die gesamte Umgebung gewonnen werden kann.
  • Das Monitoring in den Märkten sollte auch funktionieren, wenn ein Markt vom restlichen Netz getrennt ist.
  • In jedem Markt sollte es die Möglichkeit geben auch lokal Informationen anzuzeigen. Der Status sollte auch für Mitarbeiter ohne speziellem Fachwissen verständlich dargestellt werden.
  • Die Lösung sollte robust gegenüber geringen Bandbreiten und instabilen Verbindungen zwischen Zentrale und Markt sein.
  • Für einen zentralen Statusmonitor sollte auf Basis von GPS-Koordinaten automatisch eine Übersicht in Form einer Karte generiert werden.
  • Neue Systeme im Markt sollten auf regelmäßiger Basis automatisch in die Überwachung aufgenommen werden.
  • Die Checks aus dem bestehenden Nagios-System, basierend auf Nagios + NSCA, sollten übernommen werden.
  • Die Qualität des Monitorings von kritischen Systemen sollte verbessert werden.
  • Die Daten jedes Marktes sollten zu einem Gesamtzustand aggregiert werden. Beispielsweise sollte ein Markt einen kritischen Zustand melden, wenn weniger als ein festgelegter Prozentsatz an Kassen arbeitsfähig ist.
  • Die Installation sollte auf bereits vorhandenen Systemen (SuSE Linux Enterprise Server 10) erfolgen.

Bei diesem Projekt war die Herausforderung nicht nur der große Umfang, sondern auch die speziellen Anforderungen, die sich aus dem Umfeld des Einzelhandels ergeben.

Die Lösung

Die umgesetzte Lösung setzte damals auf die Version 1.1.13 von Checkmk. In jedem Markt existiert eine Nagios Installation auf Basis der Open Monitoring Distribution (OMD) und Checkmk. Die Verwendung von OMD sorgt für eine einfache und standardisierte Installation der Monitoring-Server. So kann zur Verteilung der Installation und Konfigurationen auf bereits vorhandene Tools gesetzt werden. Die Nagios-Instanz im Markt ist dafür zuständig, alle lokalen Systeme und die zentralen Dienste aus Sicht des Marktes zu überwachen. Außerdem kann auf Basis der erfassten Daten ein Dashboard zur Darstellung des lokalen Status erstellt werden. Checkmk verwendet zur Abfrage der Daten einen eigenen Agenten, der nicht konfiguriert werden muss. So ist der Rollout auf die große Menge der zu überwachenden Systeme problemlos möglich. Mit der Inventur-Funktion von Checkmk wird automatisch ermittelt, was auf einem System überwacht werden kann. Die Schwellwerte werden über flexible Regeln auf dem zentralen Server konfiguriert. Das lokale Netzwerk des Marktes wird regelmäßig automatisiert nach neuen Komponenten gescannt. Dabei wird auf das Standardwerkzeug nmap gesetzt. Sobald ein neues System gefunden wird, werden mit Hilfe der automatischen Inventur von Checkmk die zu überwachenden Services der Systeme ermittelt. Dieser Prozess findet komplett automatisiert ohne manuellen Eingriff statt. Der Aufwand für die Verwaltung des Monitorings in den Märkten wird so minimiert.

Markt-Systeme aggregiert in der Business Intelligence von Checkmk

Der Zustand aller Systeme eines Marktes wird in einem Gesamtzustand zusammengefasst. Diese Aggregation wird mit Hilfe von Checkmk Business Intelligence (BI) realisiert. Bei der Aggregation werden allgemein formulierte Regelwerke auf die jeweils im Markt vorhandenen Systeme angewendet. Das Regelwerk besteht aus 26 verschiedenen Regeln. So wird der große Aufwand einer expliziten Konfiguration vermieden.

In der zentralen Instanz wird der Summenstatus jedes Marktes abgefragt. Um dies zu realisieren, wird der JSON basierte Webservice von Checkmk verwendet. Die zentrale Instanz fragt den Status der Markt-Aggregation minütlich ab. So ist sichergestellt, dass die Informationen in der Zentrale den aktuellen Zustand im Markt widerspiegeln.
Um den Status der gesamten Umgebung übersichtlich darzustellen, wird in Checkmk Multisite ein Dashboard erstellt, das als Übersichtseite an zwei 55 Zoll TFT Monitoren dauerhaft angezeigt wird. Auf diesem Dashboard finden sich einzelne Ansichten (Dashlets), die u.a. die Märkte mit Verbindungsproblemen und Host- oder Serviceprobleme in eigenen Listen anzeigen.
Im Rahmen des Projektes wird NagVis um die Geomap Funktionalität erweitert. Dabei erstellt NagVis anhand der GPS-Koordinaten aller Standorte und frei verfügbarem Kartenmaterial von Openstreetmap eine Landkarte und positioniert die Standorte auf dieser Karte.

Rollout

Das zentrale Nagios System wurde in einem dreitägigen Workshop konzeptioniert und aufgebaut. Nach einer Kennenlernphase und Austausch von Informationen war die Grundinstallation der zentralen Nagios Instanz dank OMD in einem Tag erledigt. In diesem Schritt wurden auch einige neue Checkmk Checks entwickelt (wie z.B das Monitoring von Bintec Routern), die in die offizielle Version von Checkmk eingeflossen sind. Nach einigen Wochen Konzeption und Entwicklung der Anbindung der Märkte wurde der große Rollout auf alle Märkte in einem weiteren viertägigen Vor-Ort-Termin an den ersten beiden Tagen vorbereitet und gegen Ende des zweiten Tages gestartet. Innerhalb von sechs Stunden wurden insgesamt 1200 Nagios Systeme aufgesetzt. Das sind drei neue Installationen pro Minute! Nach der Installation in den Märkten wurden alle Systeme am dritten Tag in die zentrale Instanz eingebunden. Im gleichen Zug wurde die Geomap mit den Informationen aus den Märkten in Betrieb genommen.


Die Geschwindigkeit der Zielerreichung von der Planung bis zur Umsetzung hat uns selbst überrascht. Die Zusammenarbeit mit der Mathias Kettner GmbH war von Anfang an professionell und zielstrebig.

Fazit

Mit geringem Aufwand wurde in partnerschaftlicher Zusammenarbeit eine passende Lösung für EDEKA entwickelt und erfolgreich implementiert. Das gesamte Projekt wurde auf Basis von lizenzkostenfreier Software entwickelt. Gleichzeitig wurde Wissen vermittelt und das Know-How des Kunden im Bereich Monitoring weiter ausgebaut.

Lars Michelsen, Head of Engineering bei tribe29

Ansprechpartner: Lars Michelsen

Lars Michelsen war nach Mathias Kettner der zweite Mitarbeiter der tribe29 GmbH und hat die Entwicklung von Checkmk fast von Anfang an mit gestaltet. Heute ist er der Leiter der Softwareentwicklung.