Application Monitoring eines Shopware Webshops mit Matomo und Icinga

Heute möchte wir euch vorstellen, wie man mit Hilfe der OpenSource Tools Matomo und Icinga ein leichtgewichtiges, aber trotzdem sehr flexibles Application Monitoring zur Überwachung der Kennzahlen eines Shopware Webshops aufsetzen kann.

Nicht mit Kanonen auf Spatzen schießen

Im 1. Teil der Artikelreihe Application Monitoring haben wir im Kapitel „Probleme durch ein Application Monitoring identifizieren“ einige sehr mächtige Tools vorgestellt. Mit Hilfe dieser Tools lassen sich auch komplexe Kennziffern erfassen,  darstellen und automatisiert auswerten. Nur ist es nicht für jede Webseite nötig bzw. wirtschaftlich sinnvoll die für die Monitoring Software  benötigten Investitionen vorzunehmen.

Aus diesem Grund haben wir für unsere Kunden eine „leichtgewichtige“ Lösung gesucht, die keine bis geringe Invesitionen benötigt und in der Lage ist, die für den Kunden wichtigsten Kennziffern zu überwachen. Die dabei von uns entwickelte Lösung möchten wir an einem vereinfachten Beispiel einer Shopware-Installation demonstrieren.

Überwachung der Payseite eines Shopware Webshops

Problemstellung

Von einen auf Shopware basierenden Webshop sollte sichergestellt werden, dass der Bezahlprozess funktioniert. Um das zu messen, werden zwei Kennzahlen benötigt:

  1. wie oft wird die Payment-Seite und
  2. wie oft wird die Checkout-Seite aufgerufen

In dem vereinfachten Beispiel weiß der Shopbetreiber, dass von 10 Kunden, die die Bezahlseite aufrufen, einer tatsächlich den Bezahlvorgang zu Ende durchführt. Das entspricht einer Quote von 1:10.

Es wurde festgelegt, dass werktags in der Zeit von 9-18 Uhr ab einer Quote von 1:20 oder schlechter eine E-Mail an den Shopbetreiber geht. Sollte sich der Wert noch weiter verschlechtern, soll ab einer Quote von 1:40 auch zusätzlich bei den Technikern ein Alarm ausgelöst werden.

Das Projekt wurde wie folgt umgesetzt:

1. Erfassen der Kennzahlen mit Matomo

Mit dem freien Google Analytics-Alternative Matomo (ehemals Piwik) gibt es eine häufig verwendete Plattform für die Analyse von Web-Plattformen, die jenseits des hier dargestellten Anwendungsfalls viele Möglichkeiten bietet.

Definition des Ziels "Payment" in Matomo

Matomo erlaubt es sogenannte Ziele zu definieren. Ein Ziel kann zum Beispiel eine exakte URL wie die Zielseite nach erfolgreicher Bestellung sein.

Schon mit einem einzelnen Ziel lassen sich mit Hilfe der Schnittstelle von Matomo viele Kennzahlen abfragen und somit auch überwachen.

Übersicht der in Matomo definierten Ziele

In unserem Beispiel haben wir zwei Ziele definiert:

  1. Payment-Seite und
  2. Checkout-Seite

Diese beiden Ziele werden benötigt, um die benötigte Quote errechnen zu können.

2. Automatische Überprüfung der Kennzahlen

Die beste Überwachung hilft nicht viel, wenn niemand etwas von den Problemen mitbekommt.

Die meisten Webshops laufen auf gemanagten Servern für die in irgendeiner Form schon ein Überwachungssystem existiert. Es liegt nun nahe, dass man versucht diese bereits im Einsatz befindlichen Tools auch für diese Aufgabe zu verwenden.

Demo Screenshot von: https://icinga.com

Sehr verbreitet sind dabei Werkzeuge wie Sensu, Nagios oder Icinga. Da wir bei LAMP solutions für Überwachungen Icinga einsetzen, haben wir die folgenden Schritte nur mit Icinga getestet. Prinzipiell sollten sich aber alle der genannten Tools für die Aufgabe eignen.

Um den Rahmen dieses Beitrages nicht zu sprengen, können wir an dieser Stelle nicht auf die Konfiguration von Icinga eingehen.

Damit Icinga die unter Matomo definierten Ziele auslesen und verarbeiten kann, wird noch ein kleines Shellscript benötigt, welches folgende Parameter auswertet:

  • die URL zu einer Matomo-Installation,
  • einen API-Schlüssel,
  • die ID der überwachten Seite in Matomo,
  • die ID des Ziels,
  • Schwellwert 1 (Warnung an den Shopbetreiber), hier also 0,05 (entspricht der Quote von 1:20) und
  • Schwellwert 2 (Warnung an die Techniker), hier also 0,025 (entspricht der Quote von 1:40).

Folgendes Script erfüllt die benötigten Aufgaben:

check_matomo_conversion.sh

#!/bin/bash
display_usage() {
echo -e "\nUsage:\ncheck_matamo_conversion.sh [domain] [api-token] [siteid] [goalid] [waring] [critical]\n"
}
if [ $# -le 5 ]
then
display_usage
exit 0
fi

DOMAIN="$1"
TOKEN="$2"
SITEID="$3"
GOALID="$4"
WARNING="$5"
CRITICAL="$6"

URL="$DOMAIN/index.php?module=API&method=Goals.get&idSite=$SITEID&period=day&date=yesterday&idGoal$GOALID&token_auth=$TOKEN"

echo $URL;

RATE=$(curl -s $URL | grep -oP '(?<=<conversion_rate>).*?(?=</conversion_rate>)')

RATE=${RATE/.*}

if [[ "$RATE" -lt "$CRITICAL" ]];then
echo "Critical: $RATE lower then $CRITICAL"
exit 2
fi

if [[ "$RATE" -lt "$WARNING" ]];then
echo "WARNING: $RATE lower then $WARNING"
exit 1
fi

echo "ok"
exit 0

Sollte nun der erste Schwellwert von 1:20 unterschritten werden, verschickt Icinga automatisch eine E-Mail an den Shopbetreiber mit folgendem Inhalt:

***** Icinga  *****

Notification Type: PROBLEM

Service: CheckPayment
Host: shopware.lamp-solutions.de
Address: 217.182.33.248
State: WARNING

Date/Time: 2019-01-24 11:30:51 +0100

Additional Info: WARNING - actual payment/checkout ratio: 0.045

Comment: [] 

Verschlechtert sich die Quote weiter und erreicht einen Wert kleiner als 1:40, ändert sich der Status von warning zu critical und die Techniker werden informiert:

***** Icinga  *****

Notification Type: PROBLEM

Service: CheckPayment
Host: shopware.lamp-solutions.de
Address: 217.182.33.248
State: CRITICAL

Date/Time: 2019-01-24 12:00:23 +0100

Additional Info: CRITICAL - actual payment/checkout ratio: 0.045

Comment: [] 

Anmerkung:  Statt einer E-Mail kann natürlich auch eine SMS oder Nachricht über zum Beispiel den Telegram-Messanger verschickt werden.

3. Fazit und Ausblick

Mit Hilfe von Matomo und Icinga lässt sich das gestellte Problem mit minimalem Aufwand lösen. Die Installation und Konfiguration von Matomo sowie die Aktivierung der Überwachung in einem bestehenden Icinga-Setup ist in circa einer Stunde erledigt. Da Matomo und Icinga beides OpenSource Software sind, kommen auf den Shopbetreiber auch keine Kosten für Lizenzen hinzu.

Weitere Vorteile wären:

Da die Matomo-Installation prinzipiell auf jedem beliebigen Server laufen kann, muss auf der zu überwachenden Webseite nichts installiert werden. Somit lässt sich die Überwachung auch für ganz andere Projekte, wie zum Beispiel eine WordPress- oder Typo3-Seite verwenden.

Weiterhin kann man noch viele andere Szenarien monitoren. Diese wären zum Beispiel:

  • Überwachung der durchschnittlichen Absprungrate
    Wenn zum Beispiel die Kunden in einer Sitzung im Durchschnitt 5 Webseiten anklicken und dieser Wert plötzlich auf einen deutlich niedrigeren Wert fällt, kann das auch auf ein technisches Problem zurück zu führen sein.
  • Überwachung der Benutzerströme
    Betreibt man E-Mail Marketing oder kauft Traffic über Google AdWords, dann landen die User üblicherweise auf speziellen Landingpages. Verändern sich bei diesen plötzlich die Konversationsrate, kann der Grund dafür bei einem Problem mit der oder den Landingpages sein.
  • Überwachung der Neuanmeldungen
    Bei Neuanmeldungen muss der User seine E-Mail Adresse bestätigen. Weichen plötzlich die Neuanmeldungen von den üblichen Quoten stark ab, kann die Ursache in dem verwendeten E-Mail Template liegen.

Wir werden in dem nächsten Beitrag zu dieser Artikelreihe noch einmal gesondert auf ähnliche Beispiele eingehen.

Lassen auch Sie Ihre wichtigsten Kennzahlen überwachen

Allen Kunden, die bei uns den ProAktiv Service gebucht haben, können wir auf Wunsch auch wichtigen Kennzahlen ohne monatliche Zusatzkosten durch unser Monitoring überwachen lassen. So können unsere Techniker bei aufkommenden Problemen schnell und effizient reagieren.

Schreiben Sie uns einfach. Wir freuen uns über ihrer Anfrage und beantworten gern Ihre Fragen!