Überwachung und Alarmierung der Meraki-Netzwerkleistung
Meraki Network Monitor
Überwacht automatisch Latenz und Paketverlust im Cisco-Meraki-Netzwerk. Sendet bei Überschreitung festgelegter Schwellenwerte Alarmmeldungen über Teams und verhindert mithilfe von Redis doppelte Benachrichtigungen.
Workflow-Übersicht
Dieser n8n-Workflow ist ein Cisco Meraki Netzwerküberwachungs- und Alarmierungssystem, das automatisch Netzwerkleistungsmetriken (Latenz und Paketverlustrate) überwacht und bei erkannten Problemen Alarmbenachrichtigungen versendet. Der Workflow ruft über die Meraki-API Organisations-, Netzwerk- und Uplink-Statistikdaten ab, berechnet durchschnittliche Leistungskennzahlen, filtert problematische Standorte heraus und sendet Alarmmeldungen über Microsoft Teams, wobei gleichzeitig eine Redis-Datenbank zur Vermeidung von doppelten Alarmen genutzt wird.
Workflow-Struktur
1. Auslöserknoten
Knotennamen:
When clicking "Execute Workflow"(Manueller Auslöser)Schedule Trigger(Zeitplanbasierter Auslöser)
Funktionsbeschreibung: Der Workflow unterstützt zwei Auslösemethoden:
- Manuelle Ausführung: Durch Klicken auf den Button „Workflow ausführen“
- Zeitgesteuerte Ausführung: Automatische Ausführung gemäß vorgegebenem Zeitplan (für kontinuierliche Überwachung)
2. Datenerfassungsphase
2.1 Abruf der Meraki-Organisationsinformationen
Knotenname: Get Meraki Organizations
Funktionsbeschreibung:
- HTTP-Anfrage an die Meraki-API (
https://api.meraki.com/api/v1/organizations) - Authentifizierung über Header; hierfür ist ein Meraki-API-Schlüssel erforderlich
- Ruft eine Liste aller Organisationen ab, auf die das Konto Zugriff hat
Technische Details:
- Anfragetyp: GET
- Authentifizierungsmethode: HTTP-Header-Auth
- Erforderliche Header:
Authorization: Für die AuthentifizierungAccept: application/json: Gibt an, dass JSON-Daten zurückgegeben werden sollen
2.2 Aufbereitung der Organisationsdaten
Knotenname: Get Org Name & ID
Funktionsbeschreibung:
- Nutzt einen Set-Knoten, um wichtige Felder zu extrahieren und umzubenennen
- Extrahiert aus den Rohdaten:
CompanyName: OrganisationsnameOrgID: Organisations-ID
2.3 Abruf der Netzwerk-IDs
Knotenname: Get Network IDs
Funktionsbeschreibung:
- Ruft für jede Organisations-ID über die API alle zugehörigen Netzwerke ab
- Verwendet dynamische URL:
https://api.meraki.com/api/v1/organizations/{{ $json.OrgID }}/networks - Stellt eine Netzwerkliste für die anschließende Überwachung bereit
2.4 Aufbereitung der Netzwerkvariablen
Knotenname: Sets Network Variables
Funktionsbeschreibung:
- Extrahiert und formatiert Netzwerkinformationen
- Enthält wichtige Felder wie Netzwerkname, Netzwerk-ID und Netzwerk-URL
2.5 Abruf der Uplink-Statistikdaten
Knotenname: Get Uplink Loss and Latency
Funktionsbeschreibung:
- Ruft Leistungsstatistiken der Netzwerkgeräte für die Uplinks ab
- Enthält:
- Paketverlustrate in Prozent (Loss Percent)
- Latenz in Millisekunden (Latency Ms)
- Zeitreihendaten (der letzten 5 Zeitpunkte)
3. Datenverarbeitungs- und Analysephase
3.1 Datenzusammenführung
Knotenname: Combine latency to its respective Network
Funktionsbeschreibung:
- Nutzt einen Merge-Knoten, um Netzwerkinformationen mit Leistungsstatistikdaten zu verbinden
- Übereinstimmungsfeld:
NetworkIDmitnetworkId - Zusammenführungsmodus: enrichInput1 (Anreicherung der Eingabedaten 1)
3.2 Datenrestrukturierung
Knotenname: Makes Latency and Loss Filterable
Funktionsbeschreibung:
- Reorganisiert die Datenstruktur, um Latenz- und Paketverlustdaten besser filterbar und analysierbar zu machen
- Extrahiert 5 Zeitreihendatenpunkte:
TS0-LossbisTS4-Loss: Paketverlustraten der 5 ZeitpunkteTS0-LatencybisTS4-Latency: Latenzen der 5 Zeitpunkte
- Behält Metadaten wie Netzwerkname, Seriennummer und URL bei
3.3 Berechnung der Durchschnittswerte
Knotenname: Average Latency & Loss over 5m
Funktionsbeschreibung:
- Berechnet mithilfe von JavaScript-Code den Durchschnitt der letzten 5 Zeitpunkte
- Berechnet zwei Schlüsselmetriken:
AverageLoss: Durchschnittliche PaketverlustrateAverageLatency: Durchschnittliche Latenz (in Millisekunden)
- Diese Durchschnittswerte dienen einer genaueren Identifikation von Leistungsproblemen
Code-Logik:
// Summiert Paketverlust und Latenz über 5 Zeitpunkte
// Teilt durch 5, um den Durchschnitt zu erhalten
// Fügt das Ergebnis dem Datensatz hinzu
3.4 Filterung problematischer Standorte
Knotenname: Filters Problematic sites
Funktionsbeschreibung:
- Filtert mithilfe von JavaScript-Code Standorte heraus, die Schwellenwerte überschreiten
- Schwellenwertkriterien:
- Durchschnittslatenz > 300 ms
- oder durchschnittliche Paketverlustrate > 2 %
- Nur Standorte, die mindestens eines dieser Kriterien erfüllen, werden an den nächsten Schritt weitergeleitet
Filterlogik:
// Wenn AverageLatency > 300 oder AverageLoss > 2
// wird der Standort als problematisch markiert
4. Alarm-Deduplizierung und Benachrichtigungsphase
4.1 Prüfung, ob Alarm bereits existiert
Knotenname: Check if Alert Exists
Funktionsbeschreibung:
- Fragt die Redis-Datenbank ab, ob für dieses Netzwerk bereits ein Alarm gesendet wurde
- Verwendet den Netzwerknamen als Schlüssel
- Existiert der Schlüssel, wurde innerhalb der TTL-Zeit bereits ein Alarm gesendet
4.2 Erstellung der Antwortdaten
Knotenname: Create Response
Funktionsbeschreibung:
- Verarbeitet das Abfrageergebnis aus Redis mittels JavaScript
- Wandelt das Ergebnis in einen verwendbaren booleschen Wert oder Kennzeichner um
- Bestimmt, ob ein neuer Alarm gesendet werden muss
4.3 Deduplizierung durch Zusammenführung
Knotenname: Merge
Funktionsbeschreibung:
- Führt problematische Standorte mit bereits bestehenden Alarmdaten zusammen
- Übereinstimmungsfeld:
NetworkName - Zusammenführungsmodus: Alle nicht übereinstimmenden Elemente beibehalten
- Wesentliche Logik: Bei Übereinstimmung des Netzwerknamens existiert bereits ein Alarm – kein erneuter Versand. Nur nicht übereinstimmende (d. h. neue Probleme) werden weitergeleitet
4.4 Versand der Teams-Nachricht
Knotenname: Message Techs
Funktionsbeschreibung:
- Sendet Alarmmeldungen über einen Microsoft Teams-Webhook
- Nachrichteninhalt umfasst:
- Netzwerkname
- Durchschnittsdaten zu Latenz und Paketverlustrate
- Netzwerk-URL (als Hyperlink, direkter Sprung zum betroffenen Standort möglich)
- Informiert das technische Team über überschrittene Leistungsschwellenwerte
4.5 Protokollierung des Alarms
Knotenname: Log the Alert
Funktionsbeschreibung:
- Speichert den Alarm in der Redis-Datenbank
- Setzt eine TTL (Time-to-Live) von 3 Stunden
- Deduplizierungslogik: Falls das Problem am selben Standort innerhalb von 3 Stunden nicht behoben wird, wird nach Ablauf der 3 Stunden erneut ein Alarm gesendet
5. Hilfestellende Hinweisknoten
Der Workflow enthält mehrere Sticky-Note-Knoten (Haftnotizen) mit detaillierten Anleitungen:
- Sticky Note3: Erläutert die Konfiguration der Meraki-API-Authentifizierung
- Sticky Note4: Beschreibt die Logik hinter Datenzusammenführung und statistischer Berechnung
- Sticky Note5: Erläutert detailliert den Mechanismus zur Alarm-Deduplizierung und den Benachrichtigungsablauf
- Sticky Note6: Empfiehlt weitere Anwendungsszenarien (z. B. Integration in PSA-Tools zur Ticket-Erstellung)
Workflow-Diagramm
[Auslöser] → [Organisationen abrufen] → [Organisationsdaten aufbereiten] → [Netzwerk-IDs abrufen] → [Netzwerkdaten aufbereiten]
↓ ↓
[Uplink-Daten abrufen] --------------------------------------------------------------→ [Daten zusammenführen]
↓
[Latenz- und Verlustdaten restrukturieren]
↓
[5-Minuten-Durchschnitt berechnen]
↓
[Problematische Standorte filtern]
↓
[Alarm vorhanden?] ← → [Deduplizierung durch Zusammenführen]
↓ ↓
[Antwort erstellen] ------------→ [Teams-Nachricht senden]
↓
[Alarm protokollieren]
Wesentliche technische Aspekte
1. API-Authentifizierung
- API-Schlüssel muss im Meraki Dashboard generiert werden
- Referenzdokumentation: https://documentation.meraki.com/General_Administration/Other_Topics/Cisco_Meraki_Dashboard_API
- Verwendet HTTP-Header-Authentifizierung
2. Leistungsschwellenwerte
- Latenzschwelle: 300 Millisekunden
- Paketverlustschwelle: 2 %
- Diese Schwellenwerte können je nach Bedarf angepasst werden
3. Mechanismus zur Vermeidung doppelter Alarme
- Verwendet Redis zur Speicherung bereits gesendeter Alarme
- TTL auf 3 Stunden gesetzt
- Innerhalb der TTL-Zeit werden keine wiederholten Alarme für denselben Standort gesendet
4. Datenverarbeitungsmethodik
- Erfasst Daten der letzten 5 Zeitpunkte
- Berechnet Durchschnittswerte, um kurzfristige Schwankungen zu reduzieren
- Nutzt JavaScript-Code-Knoten für komplexe Datenverarbeitung und Filterung
Anwendungsszenarien
- Netzwerkleistungsüberwachung: Kontinuierliche Überwachung von Latenz und Paketverlust in Meraki-Netzwerken
- Proaktive Alarmierung: Automatische Benachrichtigung des technischen Teams bei Leistungseinbußen
- Fehlerbehebung: Bereitstellung direkter Netzwerk-URL-Links zur schnellen Lokalisierung von Problemen
- Alarmmanagement: Vermeidung von Alarmfluten – pro Standort wird innerhalb von 3 Stunden nur ein Alarm gesendet
Erweiterungsvorschläge
Gemäß Sticky Note6 können folgende Erweiterungen vorgenommen werden:
- Integration in PSA-Systeme: Ersetzen des Teams-Nachrichtenknotens durch einen PSA-Tool-Knoten (z. B. ConnectWise Manage), um automatisch Tickets statt nur Nachrichten zu erstellen
- Mehrfach-Benachrichtigungskanäle: Zusätzlich zu Teams können auch E-Mail, Slack oder andere Kanäle hinzugefügt werden
- Individuelle Schwellenwerte: Unterschiedliche Leistungsschwellen für verschiedene Netzwerke festlegen
- Langzeitspeicherung historischer Daten: Speichern der Überwachungsdaten in einer Datenbank zur langfristigen Analyse und Trendvorhersage
Zusammenfassung
Dies ist ein vollständiger, automatisierter Netzwerküberwachungs-Workflow, der die folgenden Funktionen von n8n optimal nutzt:
- HTTP-Anfragen zur Integration externer APIs
- Datenumwandlung und -verarbeitung (Set-, Code-Knoten)
- Datenzusammenführung (Merge-Knoten)
- Bedingte Filterung und logische Entscheidungen
- Externe Benachrichtigungen (Teams-Webhook)
- Datenspeicherung (Redis)
Durch automatisierte Überwachung und intelligente Alarmierung wird die Effizienz des Netzwerkbetriebs deutlich gesteigert und der manuelle Prüfaufwand erheblich reduziert.