Der token_auth ist ein geheimer API-Schlüssel, den Matomo jedem Benutzer zuordnet. Er dient zur Authentifizierung bei automatisierten Anfragen an Matomo — z. B. beim Import von Logdateien, bei API-Abfragen oder beim automatischen Reporting.
Du kannst ihn dir vorstellen wie ein Passwort für die API-Schnittstelle. Jede Anfrage mit diesem Token gilt so, als würde der betreffende Benutzer in Matomo eingeloggt sein.
Wo finde ich den token_auth?
Variante 1: Direkt über die Matomo-Weboberfläche
- Melde dich in Matomo als Administrator oder als Benutzer mit Import-Rechten an.
- Klicke oben rechts auf dein Benutzer-Symbol → „Einstellungen“ (⚙️).
- Gehe zu „Sicherheit“ → „API-Authentifizierung“.
- Dort findest du einen Eintrag wie:
`` Ihr Authentifizierungs-Token (token_auth): 9f8a1b2c3d4e5f6a7b8c9d0e12345678 ``
Diesen Wert kopieren und sicher aufbewahren — er gewährt vollen Zugriff im Namen deines Accounts!
- Wenn du möchtest, kannst du dort auch einen neuen Token regenerieren, z. B. wenn du glaubst, der alte wurde kompromittiert.
Warum brauche ich ihn für Log Analytics?
Das Log-Import-Skript (import_logs.py) kommuniziert über die Matomo HTTP API mit deiner Matomo-Installation. Es sendet für jede erkannte Logzeile ein Tracking-Event an Matomo — genau so, als hätte ein Browser das Tracking-Script ausgeführt.
Damit Matomo diese Requests akzeptiert, muss sich das Skript authentifizieren — und dafür braucht es den token_auth.
Ein Beispielbefehl:
``bash python3 /pfad/zu/import_logs.py \ --url=https://analytics.example.com/matomo \ --idsite=1 \ --token-auth=9f8a1b2c3d4e5f6a7b8c9d0e12345678 \ /var/log/apache2/access.log ``
Ohne gültigen Token würde Matomo alle eingehenden Tracking-Requests vom Import-Skript ablehnen.
Warum „unsichere Verbindungen“ erwähnen?
Standardmäßig lehnt Matomo API-Zugriffe über unverschlüsselte HTTP-Verbindungen (also ohne HTTPS) ab. Das ist ein Sicherheitsfeature, um zu verhindern, dass Token im Klartext durchs Netz gehen.
Wenn du das Import-Skript auf demselben Server betreibst (z. B. localhost), ist das kein Problem — du kannst HTTPS oder HTTP verwenden. Wenn du das Skript auf einem anderen Server nutzt, musst du HTTPS verwenden, sonst riskierst du, dass der Token abgefangen wird.
Es gibt aber Ausnahmen:
- In internen Netzwerken (z. B. 192.168.x.x oder 10.x.x.x) kann es vorkommen, dass HTTPS noch nicht eingerichtet ist.
- Dann muss das Skript Matomo mitteilen, dass unsichere Verbindungen erlaubt sind — über den Parameter:
``bash --accept-invalid-ssl ``
oder bei älteren Versionen mit:
``bash --no-ssl-check ``
Dieser Schalter deaktiviert die SSL-Zertifikatsprüfung. Das ist nützlich bei internen Tests oder selbstsignierten Zertifikaten – sollte aber niemals dauerhaft im Internetbetrieb verwendet werden.
Best Practices
- Immer HTTPS verwenden, auch intern (z. B. mit Let’s Encrypt oder selbstsignierten Zertifikaten).
- Token nur für den Import-Benutzer erstellen – kein Admin-Token verwenden!
* Du kannst z. B. einen Benutzer „logimporter“ anlegen, der nur Rechte auf eine bestimmte Website (idsite) hat.
- Token niemals in Logs, Skripten oder öffentlich sichtbaren Cronjobs im Klartext speichern.
* Besser: in einer separaten Konfigurationsdatei mit restriktiven Berechtigungen (chmod 600).
- Wenn du das Skript regelmäßig ausführst, prüfe, dass das Token aktuell ist (nicht nach einem Reset des Passworts abgelaufen).
- Wenn du in einem internen Netz arbeitest und HTTPS nicht verfügbar ist:
Verwende --accept-invalid-ssl, aber nur in einer geschützten Umgebung. Stelle sicher, dass das Netz physisch oder per VPN abgesichert ist.
Beispiel mit Token und SSL-Schutz
Ein vollständiger, sicherer Import-Befehl sieht so aus:
``bash /usr/bin/python3 /opt/matomo/misc/log-analytics/import_logs.py \ --url=https://analytics.meinserver.de/matomo \ --idsite=7 \ --token-auth=$(cat /etc/matomo/token_auth) \ --recorders=4 \ --enable-http-errors \ --enable-http-redirects \ /var/log/nginx/access.log ``
Der Token liegt dabei in /etc/matomo/token_auth, die nur root lesen darf. Das Skript sendet die Daten sicher über HTTPS an Matomo und verwendet den Token für die Authentifizierung.