n8n ist ein mächtiges Open-Source-Automatisierungswerkzeug. Sobald es in Produktion geht, stellt sich unweigerlich die Frage: Wie merke ich, wenn ein Workflow fehlschlägt?

Dieser Artikel zeigt, wie ihr n8n Workflows mit Grafana vollständig observierbar macht.

Warum Monitoring für n8n-Workflows?

n8n-Workflows laufen oft unsichtbar im Hintergrund: Daten werden synchronisiert, Benachrichtigungen verschickt, Geschäftsprozesse automatisiert. Ohne Monitoring bleiben Fehler lange unentdeckt. Typische Probleme sind:

Tipp: Auch erfolgreiche Workflows sollten überwacht werden. Eine ungewöhnlich niedrige Ausführungsrate kann genauso ein Problem signalisieren wie Fehler.

Lokales Setup

Zur Veranschaulichung können wir uns relativ schnell ein kleines lokales Setup mit "docker compose" aufbauen. Wir benötigen hierzu die Services n8n, postgresql und grafana. Wichtig hier ist das dies auf keinen Fall so als Produktivsystem verwendet werden darf. Dies dient nur der Veranschaulichung!

# docker-compose.yml 
  services:
    n8n:
      image: n8nio/n8n:latest
      restart: unless-stopped
      ports:
        - "5678:5678"
      environment:
        - N8N_HOST=localhost
        - N8N_PORT=5678
        - N8N_PROTOCOL=http
        - DB_TYPE=postgresdb
        - DB_POSTGRESDB_HOST=postgres
        - DB_POSTGRESDB_PORT=5432
        - DB_POSTGRESDB_DATABASE=n8n
        - DB_POSTGRESDB_USER=user
        - DB_POSTGRESDB_PASSWORD=password
      volumes:
        - n8n_data:/home/node/.n8n
    postgres:
      image: postgres:16-alpine
      environment: 
        POSTGRES_DB: n8n
        POSTGRES_USER: user
        POSTGRES_PASSWORD: password
      volumes:
        - postgres_data:/var/lib/postgresql/data

    grafana:
      image: grafana/grafana:latest
      restart: unless-stopped
      ports:
        - "3000:3000"
      volumes:
        - grafana_data:/var/lib/grafana
    
  volumes:
    n8n_data:
    postgres_data:
    grafana_data:



  

Die Services können anschließend mit "docker compose up -d" gestartet werde.

Grafana konfigurieren

Sobald die Services laufen kommt ihr über "localhost:3000" auf Grafana und könnt euch dort dann über den Default Zugang "admin:admin" einloggen.

Legt euch dann ein Verbindung zu eurer Postgresql Datenbank an. Hier greifen wir direkt auf unsere n8n Datenbank zu. Verwendet die Credentials, die ihr zuvor in eurer "docker-compose.yml" gesetzt hattet. Verwendet als Host URL "postgres:5432"

Grafana Datenbankverbindung konfigurieren

Nachdem eine Verbindung innerhalb von Grafana zu der Postgres DB aufgebaut wurde können wir uns an das Dashboard machen, das wir uns nicht selbst erarbeiten müssen. Wir können hier auf ein Dashboard aus der Community zurückgreifen. Credits gehen hier an den User "nluecke".

Wir können uns direkt über Dashboards->Import ein neues Dashboard anlegen.

Dashboard Import Schritt 1

In dem folgenden Formular können wir relativ simpel über die ID "24475" das Community Dashboard importieren.

Dashboard Import Schritt 2

Wir erhalten direkt ein Dashboard in dem viele nützliche Workflow Metriken angezeigt werden:

n8n Workflow Monitoring Dashboard in Grafana

Ausblick

Falls einem das nicht ausreicht lässt sich dieses Dashboard auch als Ausgangsbasis verwenden und individuell anpassen. Außerdem ist es auch möglich zuätzlich noch Prometheus einzusetzen um auch mehr auf die Performance von n8n selbst zu schauen. Auch dafür gibt es ein Template aus der Community.

Für sämtliche Metriken können innerhalb von Grafana auch Alarmierung eingebaut werden, die beispielsweise per Mail oder Slack Nachricht benachrichtigen, wenn Workflows länger als X Minuten laufen.

Wir haben gesehen, dass sich so ein Monitoring sehr schnell aufbauen lässt. Für ein Produktivsystem ist Monitoring definitiv nicht optional!

Wer tiefer in Grafana und Prometheus einsteigen möchte, findet in unseren Schulungen den strukturierten Einstieg mit Hands-on-Labs und echten Szenarien.

Tiefer einsteigen?

In unseren Live-Online-Schulungen lernt ihr Grafana und Prometheus praxisnah inklusive eigener Lab-Umgebung und kleiner Gruppen kennen.