1. #1
    Lt. Junior Grade
    Dabei seit
    Jan 2008
    Beiträge
    397

    Logfiles Apache archivieren

    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.

    Code:
    # see "man logrotate" for details
    # rotate log files weekly
    weekly
    
    # keep 4 weeks worth of backlogs
    rotate 4
    Woher weiss ich denn welche logs davon betroffen sind und wie kann ich welche ausnehmen bzw. für diese dann eine eigene Regel definieren?

    Danke

  2. Anzeige
    Logge dich ein, um diese Anzeige nicht zu sehen.
  3. #2
    Commander
    Dabei seit
    Mär 2003
    Ort
    Duisburg
    Beiträge
    2.128

    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

  4. #3
    Lt. Commander
    Dabei seit
    Feb 2012
    Ort
    Wolfsburg
    Beiträge
    1.414

    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

  5. #4
    Lt. 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?

  6. #5
    Lt. 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:

    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
    }
    Sehe ich das Richtig, dass dort die Logs jede Woche rotieren und insgesamt 52 vorgehalten werden?

    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

  7. #6
    Commander
    Dabei seit
    Mär 2003
    Ort
    Duisburg
    Beiträge
    2.128

    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

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •