02 März 2016 User Stories

Transparenz und Fehlerkategorisierung bei 1&1 mit dem Elastic Stack und ETL

Von Benjamin SpeckmannChristian Hatz

Wir, ein Betriebsteam der 1&1 Internet SE arbeiten mit ausführbaren und messbaren BPMN-Prozessen (Business Process Model and Notation), die Kundenaufträge für alle Hosting-Produkte entgegennehmen und verarbeiten. Ein Auftragsprozess beginnt, wenn ein Kunde seinen Auftrag mit einem Klick auf den „Bestellen“-Button im 1&1-Shop bestätigt. Im Rahmen des Prozesses werden z.B. Kundendaten geprüft, der Vertrag erzeugt, alle technischen Leistungen bereitgestellt und die Kundenkommunikation übernommen.

In der Vergangenheit war die Logfile-Analyse sehr zeitintensiv und nur für die Analyse einzelner Aufträgen möglich und sinnvoll. Aufgrund der interessanten Informationen in unseren Logfiles suchten wir nach einer Lösung, um diese schneller, präziser und ohne grep-Anweisungen analysieren zu können. Zu Beginn war die Verwendung von Elasticsearch, Logstash und Kibana ein Experiment, inzwischen nutzen wir unsere Dashboards nicht nur für Monitoring Aspekte. Wir integrieren die Dashboards wie ein Tool in unseren Arbeitsalltag, was uns diesen enorm erleichtert.

Was den Betrieb so beschäftigt

Was betreiben wir eigentlich? Wir betreiben aktuell 10 BPMN-Prozesse die schätzungsweise 50.000 Prozessinstanzen pro Woche verarbeiten. Dabei kommen am Tag ca. 50 GB an Logs zusammen. Die Logfiles enthalten technische und kaufmännische Daten. Mit dem Elastic Stack können wir diese Logs in Echtzeit analysieren und erreichen so Transparenz über unsere Kundenaufträgen.

Als Operations-Team liegt unser Hauptaugenmerk auf Fehlern und Störungen, die Kundenaufträge beeinträchtigen. Unser Primärziel ist die Kundenzufriedenheit, die wir durch die Überwachung von Prozess-SLAs wie „In-Time-Provisioning“ für Kundenaufträge erreichen. Um eine aussagekräftige Einschätzung über den Gesundheitszustand unserer Prozesse geben zu können brauchten wir nicht nur einen Fehlerübersicht, sondern auch eine Kategorisierung der Fehlerbilder, um diese gezielt angehen zu können. Folgende Fragen müssen wir beantworten können:

  • Welche Fehler treten in unseren Prozessen auf?
  • Ist ein Fehler prozessspezifisch oder ist es ein allgemeines Problem?
  • Wie hoch ist die Gesamtzahl der Fehler und wie hat sich diese entwickelt?
  • Sind diese Fehler bekannt und arbeitet jemand daran?
  • Sind diese Fehler bekannt und gibt es einen bekannten „work-around“ dafür?

Erweitern des Elastic Stack

Nicht alle Informationen, die wir für das effektive Bearbeiten von Fehlern benötigen, stehen in den Logs. Zur vollständigen Beantwortung aller Fragen mussten wir unsere Logs mit Informationen aus anderen Quellen wie Bug-Tracking Software, Datenbanken etc. anreichern.

Datenquellen:

  • Konfiguration von Error Pattern (Wissensdatenbank, manuell hinzugefügt)
  • Prozessinformationen (produktive Prozessinformationen aus verschiedenen Datenbanken)

Zur Aufarbeitung dieser Informationen nutzen wir das ETL-Tool Pentaho Kettle.

conditioning-and-loading-elasticsearch-schema-new.png

Abbildung 1: Prozess zum Aufarbeiten und Hochladen der Daten in Elasticsearch

Das Dashboard als Tool

Unser Kibana-Dashboard hilft uns bei der täglichen Arbeit mit den Prozessen

kibana-dashboard-overview-11-internet.png

Abbildung 2: Kibana-Dashboard – Übersicht

(1) Fehleranzahl nach Prozess (Kreisdiagramm und Tabelle)
(2) Fehleranzahl nach BugTracking-Ticket (Kreisdiagramm und Tabelle)
(3) Fehleranzahl nach Beschreibung (Kreisdiagramm und Tabelle) 
(4) Vollständige Fehlerliste

kibana-dashboard-linking-11-internet.png

Abbildung 3: Kibana-Dashboard – Verknüpfung

Um die Betriebsabläufe effizienter zu machen integriert das Dashboard andere Tools, zum Beispiel durch die Implementierung eines direkten Links auf entsprechende Tickets in der Bug-Tracking Software.

Weitere Funktionen, die das Dashboard bietet sind:

(1) Verknüpfung zum Bug-Tracker
(2) Verknüpfung zum zentralen Support-Tool, das detaillierte Informationen zu Vertrag und Kunde anzeigt
(3) Verknüpfung zum Kibana-Dashboard, das alle Log-Daten zum Auftrag (zwecks Drilldown) anzeigt
(4) Verknüpfung zum Informations-Tool, das detaillierte Informationen zu Auftrag und Kunde zeigt

Ergebnis

Wir nutzen diesen Tool-Stack jetzt seit 2 Monaten. Das Ergebnis ist beeindruckend.

Durch Die automatisierte Kategorisierung erkennen wir Fehlerbilder schneller und adressieren diese zielgerichteter. Die Quote ist hier von ca. 30 auf 90 Prozent gestiegen. Weitere Verbesserungen sind:

  1. Schnellere Fehlererkennung
  2. Über 90 Prozent unserer Fehler werden bearbeitet (davor waren es etwa 60 Prozent)
  3. Keine manuell erstellten Berichte, das Dashboard ist für alle verfügbar
  4. Ein zentrales „Tool/Dashboard“, das Betriebsabläufe optimiert und verschiedene Tools miteinander verknüpft
  5. Die Fehler sind prozessübergreifend sichtbar (nicht nur prozessspezifisch)
  6. Der Elastic Stack wird auch von Kollegen verwendet, die fachlich orientiert sind

In Zukunft ...

... werden wir bei der Nutzung des Elastic Stack unseren Fokus auf „Real-Time-Monitoring“ unserer Prozesse richten. Beispielsweise könnte uns die zeitnahe Visualisierung von Auftragsinhalten eine Sicht ermöglichen die es erlaubt, den Erfolg bzw. die Entwicklung von produktiv geschalteten Kampagnen zeitnah zu beurteilen (z. B. neues Produkt-Release). Hierfür werden wir uns mit Apache Spark beschäftigen, das uns bei der Datenverarbeitung und Berechnung unterstützen soll. Beispielweise sollen verschiedene KPIs (Leistungskennzahlen) wie z. B. die Laufzeit von Prozesse, berechnet werden.


BenjaminSpeckmann.jpg

Benjamin Speckmann ist Business Process Manager bei 1&1 Internet SE. Zuvor arbeitete er als Berater für NTT DATA Deutschland GmbH. Seit Beginn seiner Karriere beschäftigt sich Benjamin mit ausführbaren BPMN-Prozessen (Business Process Model and Notation). Überwachung, Datenanalyse und KPI-Berichte sind schon immer Teil seiner Arbeit gewesen. Er hat einen M.S. in Informatik von der Eastern Michigan University und war zuvor an der Hochschule Karlsruhe.


ChristianHatz.jpg

Christian Hatz Zuvor arbeitete Christian als Requirements Engineer und lieferte Geschäftskonzepte für extern entwickelte Geschäftsprozess-Überwachungslösungen. Er hat Erfahrung mit JBoss EAP und BPM-lastiger Infrastruktur. 2015 führte Christian den Elastic Stack für die effiziente Überwachung und Analyse technischer und geschäftlicher Daten im Auftragsmanagement ein.