Page 1 of 1

Pro Domain ein Logfile

Posted: Sat 3. Mar 2018, 00:44
by Tobi
Hi Zusammen,

ich habe seit über einem Jahr eine eigene Lösung für das Erzeugen domainspezifischer Logfiles.
Ihr benötigt dazu lediglich einen Root-Cronjob, eine kleine Anpassung an "/etc/logrotate.d/" und mein PHP Script.

Zunächst das Script lokal öffnen (am besten mit Notepad++ oder einem anderen UTF-8 / UNIX konformen Editor) und die Zeilen 3 bis 5 am Anfang des Scripts anpassen.

Code: Select all

$vhost_dir = "/etc/apache2/keyhelp/vhosts";
$backup_dir = "/root/CRONJOBS/vhost_conf_files_backup";
$logfile = "/root/CRONJOBS/vhost_cron_logfile.log";

$vhost_dir ==> Pfad zu den Keyhelp V-Hosts Dateien, muss eigentlich nicht angepasst werden
$backup_dir ==> das Verzeichnis muss vorhanden sein. Dort werden Sicherungsdateien der Original V-Hosts Dateien abgelegt. Kein Slash am Ende!
$logfile ==> in dieser Datei werden die Änderungen protokolliert. Die kann auch im Webroot eines anderen Users (Admin) liegen.

Jetzt die Datei auf dem Server ablegen (bei mir /root/CRONJOBS/) und ausführbar (chmod 755) machen.
Dateiendung auf ".php" ändern und anschließend einen Cronjob als root einrichten.
Bei mir läuft der Cronjob einmal stündlich.

Als nächstes ist noch eine Anpassung in der Log-File Rotation nötig.
Details findet ihr dazu hier: viewtopic.php?p=5041#p5041

Tja und das wars auch schon.

Wie funktioniert das Script?
=======================
Bei Aufruf ermittlet das Script zuerst wann es zuletzt gelaufen ist.
Dann scannt es den Ordner $vhost_dir nach neuen oder geänderten V-Host Dateien.
Wird eine solche gefunden, wird die Zeile "CustomLog" angepasst.
Aus "/home/users/username/access.log" wird "/home/users/username/domain.tld.access.log".
  • Alle Subdomains werden in das domainspezifische Logfile geschrieben.
  • Das "ErrorLog" bleibt unverändert.
  • Die geänderte V-Host Datei wird gespeichert und Apache neu gestartet.
  • Es ist keine Datei-Sperre mit "chattr -i" nötig. Keyhelp arbeitet auch mit der angepassten Version.

====================================================================
Für Ideen, Meinungen, Lob, Anregungen, Kritik und Verbesserungsvorschläge sowie Trinkgeld bin ich immer zu haben :lol: .
Einfach hier im Thread melden. Dann wird dir geholfen.

So und nun viel Spass mit den domainspezifischen Logfiles.

Re: Pro Domain ein Logfile

Posted: Sun 4. Mar 2018, 10:59
by select name from me;
Danke für die Anleitung.

Re: Pro Domain ein Logfile

Posted: Sat 6. Nov 2021, 00:08
by DeCysos
An für sich ist das eine tolle sache...
Ich bin auch nur über die Suchfunktion des Boards hier her gekommen weil ich auch gern möchte das für jede (Sub-)Domain ein extra Logfile angelegt werden sollte.

Jedoch würde ich mir wünschen das dieses auch für die ERROR.LOG passieren würde.

Was für mich noch etwas unklar ist...
Das Script kann/sollte/könnte alle 60 Minuten ausgeführt werden um die vhosts zu scannen und ggf umzuschreiben.
Was passiert wenn ich 10 Minuten nachdem das Script lief eine änderung in Keyhelp vor nehme und die vhosts Datei von Keyhelp neu geschrieben wird. Dann fehlen mir wahrscheinlich 50 Minuten Protokollierung in den Logfiles, oder?

Würde die anzeige der Protokolle noch über Keyhelp funktionieren?

Re: Pro Domain ein Logfile

Posted: Sat 6. Nov 2021, 06:57
by Tobi
Klar, da fehlen ein paar Minuten.
Ist halt die Frage wie wichtig diese sind.

Du kannst das Skript natürlich auch alle 5 Minuten triggern oder sogar minütlich. Es ist dann halt nur so, dass das Skript in 99,9 % aller Fälle nix zu tun hat. Keine Ahnung ob das viel Last bedeutet.

Wenn du im 5 Minuten Takt neue Domains hinzufügst macht das auch Sinn. Fügst du nur alle paar Tage eine neue Domain hinzu sollte das stündliche Intervall locker reichen und sie Outtakes sollten verschmerzbar sein.

Re: Pro Domain ein Logfile

Posted: Sat 6. Nov 2021, 09:21
by DeCysos
Dieser Ansatz hier war ganz Prima....

Nun gehe ich der Annahme, weil es ja schon eine weile her ist (2018), dass die Einstellungen in Keyhelp -> Domain -> Apache-Einstellungen -> Anweisungen für HTTP/s noch nicht existent waren.

Ich habe es nun so gelöst das ich für jede "Sub-" Domain einen bzw zwei Einträge vornehme.
Cool wäre es natürlich wenn dies bei der Erstellung der jeweiligen vhosts passieren würde.

Eintrag wie folgt (je Domain)

Code: Select all

CustomLog "/home/users/BENUTZERNAME/www/HAUPTDOMAIN.de/logfiles/DOMAIN_access.log" keyhelp_log
ErrorLog "/home/users/BENUTZERNAME/www/HAUPTDOMAIN.de/logfiles/DOMAIN_error.log"

Re: Pro Domain ein Logfile

Posted: Sat 6. Nov 2021, 10:20
by space2place
Das Thema wurde vor kurzem hier behandelt:
viewtopic.php?p=31435#p31435