Jump to content
Froxlor Forum
  • 0

goaccess aktualisiert keine Daten


Archimedes

Question

Hallo Die Runde,

 

ich habe soeben festgestellt, dass in in goaccess nur Logs von drei Tagen finde. In meinem Fall vom 3.12 - 5.12:

image.png.d929a1356248e1a65a184419618c4bf2.png

 

Die Cronjobs habe ich heute mal manuell gestartet:

image.png.02c4c3fd1c6f14407a20594bcee98dcd.png

 

Irgendwie fehlt mir gerade total der Ansatz zur Fehlersuche, da auch die Cronjobs im Debugmodus keinen Fehler liefern. Auch die .db files /var/customers/webs/username/goaccess/ sind alle vom 14. Dez 00:00.

Auch unter admin_traffic.php wird nur der Traffic von Anfang Dezember angezeigt. 

 

Wenn Irgendwer einen kleinen Denkansatz hätte, würde ich mich sehr freuen.

 

Lg Simon

 

 

 

Systeminfos:

Froxlorversion: 2.1.1

OS: Debian 12

PHP Version: 8.2.13

goaccess version: 1.7

 

 

 

 

Link to comment
Share on other sites

13 answers to this question

Recommended Posts

  • 0

danke für die schnelle Antwort.

logrotate klingt wirklich wahrscheinlich. Ich schau mir mal eben an was da genau um welche Uhrzeit läuft.

mich erstaunt aber auch noch etwas, dass die goaccess .db Dateien nicht neu erzeugt werden wenn ich die Cronjobs von Froxlor manuell starte. 

Link to comment
Share on other sites

  • 0

Ich dokumentierte hier einfach ein bisschen mit was ich inzwischen so festgestellt habe, in der Hoffnung dass es mal jemanden weiter hilft.

logrotate startet meist um genau 0:00

Die Konfiguration dazu läuft über einen systemd timer welcher in der Datei /lib/systemd/system/logrotate.timer liegt und nach /etc/systemd/system/timer.wants.target/logrotate.timer verlinkt ist.

Die Datei sieht so aus:

[Unit]
Description=Daily rotation of log files
Documentation=man:logrotate(8) man:logrotate.conf(5)

[Timer]
OnCalendar=daily
AccuracySec=1h
Persistent=true

[Install]
WantedBy=timers.target

AccuracySec=1h finde ich hier normalerweise auch ausreichend genau..... wenn man die Logfiles aber automatisiert verarbeitet kann das durchaus doof sein.

 

Froxlor Cronjob "froxlor:cron 'traffic'" läuft laut logs ebenfalls um 0:00 - meist jedoch ein paar Sekunden nach Logrotate:

 

Dez 12 00:00:00 vm002 systemd[1]: Starting logrotate.service - Rotate log files...
Dez 12 00:00:00 vm002 systemd[1]: logrotate.service: Deactivated successfully.
Dez 12 00:00:00 vm002 systemd[1]: Finished logrotate.service - Rotate log files.
Dez 12 00:00:01 vm002 CRON[146340]: (root) CMD (/usr/bin/nice -n 5 /usr/bin/php -q /var/www/html/froxlor/bin/froxlor-cli froxlor:cron 'traffic' -q 1> /dev/null)


Dez 13 00:00:01 vm002 systemd[1]: Starting logrotate.service - Rotate log files...
Dez 13 00:00:01 vm002 CRON[196280]: (root) CMD (/usr/bin/nice -n 5 /usr/bin/php -q /var/www/html/froxlor/bin/froxlor-cli froxlor:cron 'traffic' -q 1> /dev/null)
Dez 13 00:00:02 vm002 systemd[1]: logrotate.service: Deactivated successfully.
Dez 13 00:00:02 vm002 systemd[1]: Finished logrotate.service - Rotate log files.

Es sieht also genau so aus wie d00p beschreiben hat. Im Moment wo der Froxlorcronjob goaccess anwirft wurde gerade/werden gerade die Logfiles rotiert und sind somit wohl leer.

 

Nun habe ich den Timer mal auf folgendes geändert:

[Unit]
Description=Daily rotation of log files
Documentation=man:logrotate(8) man:logrotate.conf(5)

[Timer]
OnCalendar=*-*-* 00:05:00
AccuracySec=1s
Persistent=true

[Install]
WantedBy=timers.target

Damit startet logrotate immer um 00:05 und damit nachdem der Froxlor Cronjob lief.

 

Ich berichte auf jedenfall wieder 😉

Link to comment
Share on other sites

  • 0

achtung, der traffic cronjob startet zwar um 00:00 uhr aber der ist nich in 2-3 minuten durch (je nach anzahl kunden und loggröße kann das schon ne runde dauern). Je nach System macht es ggfls sinn das Logrotate eher so um 2:00 uhr oder 3:00 uhr ,laufen zu lassen

Link to comment
Share on other sites

  • 0

ok das macht Sinn - danke für den Hinweis.

Was ich aber immer noch nicht versteht ist warum der Aufruf von froxlor-cli froxlor:cron 'traffic' nicht dazu führt, dass die Einträge im Log (welche vorhanden sind) jetzt verarbeitet werden. Das Froxlorpanel zeigt zwar an, dass der Cronjob gelaufen ist aber domain.tld/goaccess sagt noch immer "Zuletzt aktualisiert: 2023-12-14 00:00:02 +0100" - dies stimmt mit der Dateizeit/Datum der .db Dateien überein.

Kann ich dies irgendwie gezielt triggern?

Link to comment
Share on other sites

  • 0

Probier mal folgenden Patch:

 

diff --git a/lib/Froxlor/Cron/Traffic/TrafficCron.php b/lib/Froxlor/Cron/Traffic/TrafficCron.php
index 30d1bd1b..421505e3 100644
--- a/lib/Froxlor/Cron/Traffic/TrafficCron.php
+++ b/lib/Froxlor/Cron/Traffic/TrafficCron.php
@@ -47,7 +47,7 @@ class TrafficCron extends FroxlorCron

        public static function run()
        {
-               self::runFork([self::class, 'handle']);
+               self::runFork([self::class, 'handle'], [true]);
        }

        public static function handle()

 

Link to comment
Share on other sites

  • 0

Servus die Runde,

 

ich habe dies nun seit ein paar Tagen so am laufen und es funktioniert sehr gut soweit. Schöner wäre noch logrotation über den froxlor-cronjob Traffic zu triggern, aber das muss ich mir erst genauer anschauen ob das elegant werden kann.

 

Lg

Link to comment
Share on other sites

  • 0

froxlor erstellt doch extra ein logrotate config script für die webserver logs (/etc/logrotate.d/froxlor) - problem ist vielmehr, dass cron.daily bei jedem unterschiedlich auf dem system ist und wir da nicht dran rumspielen (wollen)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×
×
  • Create New...