Bei der Fehlersuche im Kabelnetz hilft es, die DOCSIS-Parameter der FRITZ!Box über einen längeren Zeitraum zu protokollieren. So lassen sich Signalschwankungen, Modulations-Downgrades und Fehlerraten analysieren.

Ausgangspunkt

Grundlage ist das Script von neobiker.de, welches ich erweitert habe um DOCSIS 3.1 Unterstützung. Das Original-Script konnte nur DOCSIS 3.0 auslesen.

Erweiterungen

Das angepasste Script liest nun zusätzlich aus:

  • DOCSIS 3.1 Upstream: Modulation, PowerLevel, Frequenzbereich, FFT
  • DOCSIS 3.1 Downstream: Modulation, PowerLevel, Frequenzbereich, MER (Modulation Error Ratio), PLC, FFT, Fehler
  • FFT-Werte werden von der AVM-Notation (1K, 2K, 4K, …) in numerische Werte konvertiert

Grafana Dashboard

Das Dashboard zeigt alle wichtigen Kennwerte auf einen Blick:

Grafana Dashboard für FRITZ!Box DOCSIS Monitoring

Panels im Dashboard:

  • Kanal-Modulation QAM (Sende- und Empfangsrichtung)
  • Gesamt-Modulation QAM
  • Ping / Packet Loss
  • Fehler (korrigierbar / nicht korrigierbar)
  • Power Level (beide Richtungen)
  • Mean Square Error (DOCSIS 3.0)
  • Modulation Error Ratio (DOCSIS 3.1)

Installation

Voraussetzungen

  • InfluxDB (1.x oder 2.x)
  • Grafana
  • jq und curl auf dem System

Script einrichten

  1. Script herunterladen und Zugangsdaten anpassen:
# Im Script anpassen:
fritzbox=192.168.178.1
user='fritz0000'
pass='Passwort'
  1. Cronjob einrichten (z.B. alle 2 Minuten):
*/2 * * * * /path/to/fritz_docsis_influx_lines.sh | influx write -b <bucket>

Grafana Dashboard importieren

  1. In Grafana: Dashboards → Import
  2. JSON-Datei hochladen oder Inhalt einfügen
  3. InfluxDB-Datasource auswählen

Downloads

Die Dateien stehen unter der Lizenz CC BY-NC-SA 3.0 (Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen).

Hinweise

  • Das Script cached die Session-ID unter /run/shm/ für schnellere Abfragen
  • Bei neueren FRITZ!OS Versionen kann das Feld für die Modulation von type auf modulation wechseln – das Script erkennt dies automatisch
  • Für die Ping-Überwachung im Dashboard muss ein separater Telegraf/Ping-Collector konfiguriert sein