EdwinMosesPray Geschrieben 6. April 2010 Geschrieben 6. April 2010 Liebe Leute Heute habe ich eine Frage. Ausgangssituation ist eine Idee, sämtliche Standart-Logs (messages, mail, kernel, usw.) in eine einzige Logdatei 'server.log' umzuleiten. Auf meinem privaten Server ist nicht so viel Traffic, sodass das Ganze übersichtlich bleibt. Persönlich ist es mir zu umständlich, zig Logdateien nach einer Meldung zu durchsuchen. Alles in eine Datei rein und dann per Script oder grep die Infos raussuchen. System ist ein Ubuntu 9.10 Server, AMD 2800+, 2 GB RAM und 120GB S-ATA HDD Folgende Schritte habe ich (mit sudo) ausgeführt: * touch /var/log/server.log * chown syslog.adm server.log * chmod 644 server.log Dann in der Datei '/etc/syslog.conf': *.* -/var/log/server.log # alles andere kommentiert # Gleiches in '/etc/rsyslog.d/50-default.conf' In '/etc/logrotate.d' eine Datei erstellt 'server' mit dem Inhalt: /var/log/server.log { weekly rotate 12 compress delaycompress missingok notifempty create 644 syslog adm } Hab dann brav mit 'sudo service rsyslog restart' den syslogd und noch so ein paar Dienste und Deamons neu gestartet. Irgendwann funktionierte das und alle Ausgaben wurden in '/var/log/server.log' reingeschrieben und 1x pro Woche rotiert. ABER(!)... Die Logdaten werden trotz Rotation noch in die 'alte' Datei server.log.1 geschrieben, obwohl eine neue, leere server.log existiert: -rw-r--r-- 1 syslog adm 0 2010-04-04 06:37 server.log -rw-r--r-- 1 syslog adm 320026 2010-04-05 12:13 server.log.1 Gerade habe ich aus purer Verzweiflung den rsyslogd neu gestartet ('sudo service rsyslog restart'). Nun funktioniert es wieder. Aber richtig ist das nicht. Ich kann ja nicht 1x / Woche den rsyslog neu starten. Wo ist der Fehler? Zur Anschauung dass es wieder geht: -rw-r--r-- 1 syslog adm 1729 2010-04-06 12:17 server.log -rw-r--r-- 1 syslog adm 361435 2010-04-06 12:14 server.log.1 Danke für Hilfe Gruß, Frank M. Zitieren
moah Geschrieben 7. April 2010 Geschrieben 7. April 2010 Hi, du musst dem Logrotate sagen, dass er den ®syslog neuladen soll. Damit würde der Eintrag für dein server.log im Logrotate so aussehen: /var/log/server.log { weekly rotate 12 compress delaycompress missingok notifempty create 644 syslog adm postrotate /etc/init.d/rsyslog reload endscript } Damit sollte er dann weitermachen, wenn er das Log rotated hat . -- Mit freundlichen Grüßen moah Zitieren
EdwinMosesPray Geschrieben 7. April 2010 Autor Geschrieben 7. April 2010 (bearbeitet) Hallo moah Danke für deine Antwort. Ich habe das mal so eingegeben und das Logrotate künstlich angestoßen. Dabei gab es eine Fehlermeldung, dass ich den Service verwenden soll. Anhand deines Beispieles habe ich den Neustart, den ich sonst von Hand ausführen müsste, in das Script gepackt. /var/log/server.log { weekly rotate 5 compress delaycompress missingok notifempty create 644 syslog adm postrotate service rsyslog restart endscript } Anschließend Logrotate wieder künstlich angestoßen und siehe da... es funktioniert! -rw-r--r-- 1 syslog adm 1253 2010-04-07 21:44 server.log -rw-r--r-- 1 syslog adm 87470 2010-04-07 21:30 server.log.1 -rw-r--r-- 1 syslog adm 24303 2010-04-06 12:14 server.log.2.gz VIELEN DANK !! Gruß, Frank M. Bearbeitet 7. April 2010 von EdwinMosesPray Zitieren
EdwinMosesPray Geschrieben 7. April 2010 Autor Geschrieben 7. April 2010 Es geht auch mit 'reload rsyslog'. Ich lasse das mal so... :floet: Gruß, Frank M. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.