Jump to content
View in the app

A better way to browse. Learn more.

Froxlor Forum

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

goaccess aktualisiert keine Daten

Featured Replies

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

 

 

 

 

lt erstelldatum lief das ja am 14.12. 00:00 Uhr. - ggfls kommt dir da ein logrotate dazwischen und immer wenn der läuft ist die access.log gerade leer?

image.png

Scheint normal zu funktionieren hier ...

  • Author

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. 

  • Author

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 😉

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

  • Author

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?

für den cronjob doch mal mit --debug und --no-fork aus ...dann bekommen wir vllt etwas mehr info

  • Author

So richtig mitteilsam wurde es deshalb auch nicht:

Checking froxlor file permissions...OK
Running "traffic" job (debug) (not forking)
[notice] Checking system's last guid

 

muss ich mal auf nem testsystem anschauen, kann ich dir so auswendig dann jetzt auch nicht sagen was da is

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()

 

  • Author

Jup das hat funktioniert.

Die Daten welche aktuell im Log stehen wurden verarbeitet. Auch die Trafficberechnung im Panel bestätigt das.

Vielen Dank für deine Hilfe.

 

  • Author

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

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)

Create an account or sign in to comment

Account

Navigation

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.