Hallo,
ich würde gerne die Logfiles des Apache archivieren. Bei mir werden in die Standardlogs der Ubuntu Installation erzeugt.
Wenn ich es richtig sehe, dann wird immer 1 Woche geschrieben, dann archiviert. Es gibt dann 3 Archive plus das 1 Log der laufenden Woche.
Ich würde gerne pro Woche ein Logfile generieren, am liebsten mit einem Datumsstring im Dateinamen. Aufbewahrungszeit 6 Monate.
Ich habe schon mit Rotatelogs oder Logrotate was versucht, bin aber irgendwie gescheitert.
Das was in der logrotate.conf steht verstehe ich nicht.
Woher weiss ich denn welche logs davon betroffen sind und wie kann ich welche ausnehmen bzw. für diese dann eine eigene Regel definieren?Code:# see "man logrotate" for details # rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 4
Danke
Thema: Logfiles Apache archivieren
-
14.06.2012, 10:47 #1Lt. Junior Grade
- Dabei seit
- Jan 2008
- Beiträge
- 397
Logfiles Apache archivieren
- Anzeige
Logge dich ein, um diese Anzeige nicht zu sehen. -
14.06.2012, 11:02 #2
AW: Logfiles Apache archivieren
das schlagwort ist "dateext", einfach eintragen
und Hilfe findet man auch in "man logrotate"Das Schönste, was wir entdecken können, ist das Geheimnisvolle.
Das steht unterm Schreibtisch
Damit bin ich unterwegs
-
14.06.2012, 11:23 #3
AW: Logfiles Apache archivieren
das einfachste wäre wohl die logrotate.conf zu editieren:
/var/log/apache2 {
missingok
dateext
weekly
rotate 24
}
schön ist das aber nicht.
du solltest in die conf eintragen:
include /etc/logrotate.d
und dann in /etc/logrotate.d/ eine datei namens apache2 erstellen.
dort kannst du dann eintragen:
/var/log/apache2/access_log {
compress
dateext
weekly
rotate 24
missingok
create 644 root root
notifempty
postrotate
/etc/init.d/apache2 reload
endscript
}
den ganzen spaß dann noch für dein error_log , ssl_request_log und was du sonst noch alles hast.
das kannst du einfach mit in /etc/logrotate.d/apache2 reinschreiben
-
14.06.2012, 12:21 #4Lt. Junior Grade
Ersteller dieses Themas
- Dabei seit
- Jan 2008
- Beiträge
- 397
AW: Logfiles Apache archivieren
Wenn ich aber in die logrotate.conf ein include setze wird es sicherlich berücksichtigt, aber werden dann nicht die jetzigen Befehle zum Archivieren dennoch ausgeführt?
Hätte ich dann nicht zwei Scripts die über das /var/log/apache2 laufen?
-
21.06.2012, 14:14 #5Lt. Junior Grade
Ersteller dieses Themas
- Dabei seit
- Jan 2008
- Beiträge
- 397
AW: Logfiles Apache archivieren
Ich muss hier nochmal nachfragen.
Anscheinend habe ich den include in der conf völlig übersehen. In der /etc/logrotate.conf ist /etc/logrotate.d included. Dort ist auch ein config File Apache 2:
Sehe ich das Richtig, dass dort die Logs jede Woche rotieren und insgesamt 52 vorgehalten werden?Code:/var/log/apache2/*.log { weekly missingok rotate 52 compress delaycompress notifempty create 640 root adm sharedscripts postrotate /etc/init.d/apache2 reload > /dev/null endscript prerotate if [ -d /etc/logrotate.d/httpd-prerotate ]; then \ run-parts /etc/logrotate.d/httpd-prerotate; \ fi; \ endscript }
Dann kann ich doch auch hergehen und die Logfiles einfach jede Woche per rsync auf eine NAS schieben. Geht das in der Config Datei oder muss / sollte ich ein extra Skript schreiben?
Wann ist denn für den Cron weekly? Sonntag um 00:00 Uhr?
Danke
-
21.06.2012, 21:58 #6
AW: Logfiles Apache archivieren
Das kannst du einfach als commando in zwischen "postrotate" und dem ersten "endscript" machen.
Wann Weekly ist, weiß ich gar nicht genau. Schau mal was es alles an /etc/cron* gibt. Da sollte sich finden lassen, wann die Jobs im cron.d laufen. Wo das genau steht weiß ich gerade nicht und ist von distri zu distri verschieden. Ansonsten einfach mal schaun wann das rotierte Logfile zuletzt geschrieben wurde
Das Schönste, was wir entdecken können, ist das Geheimnisvolle.
Das steht unterm Schreibtisch
Damit bin ich unterwegs

Zitieren