Diverse Matomo Fehler in der log Datei

Hi,

ich habe seit einiger Zeit diverse Fehlermeldungen in der log Datei. Vielleicht wisst ihr ja wie man diese beheben kann.

1.ERROR API[2025-09-05 19:47:32 UTC] [90ac5] Uncaught exception in API: Sie haben keinen Zugriff auf diese Ressource, weil sie ‘view’ Zugriff für die Webseite id = 2 benötigt. /www/htdocs/*****/matomo*/core/Access.php:760

2.ERROR API[2025-09-05 15:33:48 UTC] [cd3f3] Uncaught exception in API: /libs/Zend/Db/Statement/Pdo.php(236): SQLSTATE[HY000]: General error: 2006 MySQL server has gone away [Query: ?token_auth=removed, CLI mode: 0]

3.ERROR API[2025-08-21 09:34:43 UTC] [f53c8] Uncaught exception in API: /www/htdocs/*****/matomo*/core/Site.php(155): An unexpected website was found in the request: website id was set to ‘all’ . [Query: ?date=yesterday&module=API&format=json&method=API.getSuggestedValuesForSegment&segmentName=userId&idSite=all&segment=&period=day, CLI mode: 0]

4.ERROR API[2025-08-16 23:33:53 UTC] [f030f] Uncaught exception in API: /www/htdocs/*****/matomo*/libs/Zend/Db/Statement/Mysqli.php(77): Mysqli prepare error: MySQL server has gone away [Query: ?token_auth=removed, CLI mode: 0]

Da steht überall “API”. Nutzt du die Matomo API? Ansonsten könnten das Angriffe sein.

Update zu meinen Fehlermeldungen:

Aktuell habe ich keinerlei Fehlermeldungen mehr.

Folgendes habe ich geändert:

Hier habe ich auf admin umgestellt vorher war die Standardeinstellung aktiv.

Desweiteren rufe ich nicht mehr die archive.php mit auth-token via cronjob auf sondern jetzt eine eigene Datei via cronjob:

<?php
// matomo-archive-runner.php
$php     = '/usr/bin/php'; // Pfad zu deiner PHP CLI
$console = '/www/***/***/pfad zur console /console';
$url     = 'https://example.org'; // mit http(s)://

$cmd = escapeshellcmd($php) . ' ' . escapeshellarg($console) . ' core:archive --url=' . escapeshellarg($url);

$logFile = '/www/***/***/matomo-archive.log';
$fullCmd = $cmd . ' 2>&1';

exec($fullCmd, $output, $exitCode);

// Basis-Logeintrag erstellen
$entry  = "[".date('c')."] exit={$exitCode}\n";
$entry .= implode("\n", $output) . "\n";

// Erfolg oder Fehler anhängen
if ($exitCode === 0) {
    $entry .= "Success: ok\n\n";
} else {
    $entry .= "Error: exit code {$exitCode}\n\n";
}
file_put_contents($logFile, $entry, FILE_APPEND);

// Für Cron genügt kein Output; aber beim manuellen Start zeigen wir es
echo $entry;
exit($exitCode);

Kleines Update zu meinen Problemen. Vielleicht hilft es auch anderen. Nach viel herumprobieren habe ich die Lösung (mit Hilfe von ChatGPT) gefunden, stand jetzt :crossed_fingers:

Lösung für diese Meldung: Uncaught exception in API: Sie haben keinen Zugriff auf diese Ressource, weil sie ‘view’ Zugriff für die Webseite id = 2

Ich habe die User in der Datenbank Tabelle *_access mit mindestens view Rechten hinzugefügt (obwohl sie in der *_user Tabelle als Superuser hinterlegt sind). Seitdem ist Ruhe :+1:

Lösung für die ganzen API Fehler
Mein Archivierungsscript (etwas optimiert, nicht das von oben) läuft jetzt außerhalb von Matomo auf einer Subdomain und wird sauber per Cronjob aufgerufen ohne token etc. Danke ChatGPT :grin:
Archivierung läuft sauber und ohne Fehler alle 30 Minuten durch :+1:

Update zum Update :grin:

Der Fehler mit dem view Zugriff trat leider wieder auf aber ich denke diesmal habe ich es. Es war scheinbar ein Benutzer der Matomo App. Ich hatte vor kurzem dessen Berechtigungen geändert und die App arbeitete wohl noch mit den alten token. Benutzer in der App abgemeldet und neu angemeldet und bisher ist Ruhe. Darauf muss man erstmal kommen :wink:

Die anderen API Fehler sind seit den vorherigen Änderungen nicht mehr aufgetreten🤞