Hi Michael

I debugged the split_logs script, not quite easy.....

> Yeah, it worked now. Was a special environment: I tested it with a vm
> and only log-files from today. Running split_logs manually created a
> folder for 2022/12/27 (yesterday, normally wanted), but in this folder
> were only records for today (which would be filtered, I think).

Yes, this is intentional. When logrotate runs we create a copy of the log and work through it. The results go in a folder with yesterdays date, as "todays" data is still in the live log.

If logrotate doesn't run at midnight we might end up with some data from yesterday and today in it, but each dated folder after a while will have consistently data that was aggregated until the logrotate kicked in. So I don't consider this an issue.

I checked the logs today after automatic logrotate. The files are created (and I don't know why), but it's strange. I have to less traffic on the test-site to debug it (only manual 5 hits), but
web.log is a null byte file (also on other older installations)
there's a valid json file in /home/sites/{sitename}/var/logs/2022/12/28
in GUI I can only choose 2022/12/29, which shows no results (correct, no json). 2022/12/28 is not clickable.

Should web.log have data or would it removed after statistic is processed? I have to debug the process, when I migrated a site with more traffic....

When you start split_logs in the command line,
system("$GoAccess_cmd $go_access_params");
clears the STDIN. If it's run in logrotate I think STDIN keeps alive, else the file wouldn't be created. But maybe it would be good to backup STDIN in script start (near variable declaration) with

my @stdin;
while (<STDIN>) {
        push(@stdin, $_);
}

and then loop trough the array instead of STDIN
while (my $line = <STDIN>) {
while (my $line = shift(@stdin)) {

I have to test it if it's also work with logrotate.

And then I saw, you create a /etc/logrotate.d/siteX script for each vsite which clears the web.log, so this is ok, that there's a 0 Byte file (it's ok, the complete server logs in /var/logs/https are rotated, so we don't need it).

My unterstanding of split_logs is now better than before. I'll check if array for STDIN also works in logrotate-environment. If so, I would change the script for me: I don't like any scripts I can't run manually... :) I'll give you feedback tomorrow if script change also worked in logrotate.

Regards,
Juerg
_______________________________________________
Blueonyx mailing list
Blueonyx@mail.blueonyx.it
http://mail.blueonyx.it/mailman/listinfo/blueonyx

Reply via email to