Antworten:
Nach meiner Erfahrung ist Logrotate großartig. Es ist sehr flexibel und funktioniert gut mit den meisten Softwareprogrammen.
Es gibt jedoch einige Probleme damit, und da cronolog in erster Linie eine Weblog-Rotationsfunktion ist, schreibe ich meine Erfahrungen mit logrotate + apache auf, die problematisch waren:
Beim Drehen von Protokollen müssen wir Apache benachrichtigen, dass ein Protokoll gedreht wird. Selbst wenn logrotate access.log in access.log.1 umbenennt, schreibt Apache weiterhin in access.log.1, während es in den Inode schreibt, und Das Umbenennen der Datei wirkt sich nicht auf die Inode-Nummer aus.
Beim Debian-Ätzen (und wahrscheinlich bei vielen anderen Distributionen) wird logrotate verwendet, um Apache-Protokolle zu drehen. Jetzt hat Apache einen ordnungsgemäßen Neustart , der den untergeordneten Apache-Prozessen empfiehlt, das Programm zu beenden, sobald sie die bestehenden Verbindungen beendet haben. Apache liest dann die Konfiguration erneut und erzeugt neue untergeordnete Prozesse, die in eine neue Protokolldatei schreiben (falls dies die vorherige war) gedreht).
Dies klingt nach einer großartigen Lösung, jedoch funktioniert ein ordnungsgemäßer Neustart unter bestimmten Bedingungen (wie z. B. hoher Last) nicht immer. Daher haben Debian-Entwickler beschlossen, in der Apache-Logrotate-Konfiguration einen Apache-Neustart anstelle eines ordnungsgemäßen Neustarts zu verwenden. Leider werden dadurch alle Verbindungen auf einmal getrennt, was für stark belastete Sites sehr schlecht ist. Darüber hinaus kann der Neustart von Apache auch Probleme wie das Stoppen und Nichtstarten von Apache verursachen (auch in bestimmten Ladesituationen). Weitere Informationen finden Sie unter den folgenden Fehlerlinks.
Unter dem Strich ist logrotate großartig, kann aber bei bestimmten Programmen zu bestimmten Problemen führen. Ich habe nicht viel Erfahrung mit Cronolog, aber da es Protokolle über eine Pipe schreibt, sind beim Rotieren von Protokolldateien keine Apache-Neuladungen erforderlich, wodurch im Grunde alles gelöst wird, was oben beschrieben wurde.
Verwandte logrotate / apache debian Fehler:
Ich bevorzuge Cronolog, aber es ist keine wirklich starke Präferenz.
logrotate, wo von cron gestartet wird, und wenn ein System aus irgendeinem Grund ausfällt, wenn das Drehen hätte stattfinden sollen, werden Ihre Protokolldateien nicht gedreht.
Ich mag es auch, wenn Protokolldateien das Datum (% Y% m.combined.access.log) im Namen haben, weil ich diese Protokolle für eine lange Zeit aufbewahre. Auf den meisten Systemen benennt Apache Logrotate standardmäßig die Dateien access.log, access.log.1 usw. Es ist möglicherweise möglich, ein Datum in den Protokolldateien mit logrotate zu verwenden, aber ich konnte beim letzten Mal nicht herausfinden, wie ich vorgehen soll.
Nur Logrotate verwendet. Es ist das, was Debian standardmäßig verwendet und ich hatte noch nie Beschwerden damit.
Ich benutze fast ausschließlich cronolog
über logrotate
.
logrotate
kommt mit Debian, und ich erlaube es, weiterhin für die Systemdienste wie die Mailserver-Protokolle zu arbeiten. Aber für Apache- und lighttpd
Protokolldateien ist alles cronolog
.
Einer der Gründe, warum ich benutze, cronolog
ist, dass die gesamte Konfiguration in der Protokolldateizeile der Webserverkonfiguration erfolgt
zB in eine lighttpd
Konfigurationsdatei könnten Sie setzen:
accesslog.filename = "|/usr/bin/cronolog --symlink=/var/log/webs/access.log /var/log/webs/%Y/%W-access.log"
Und alle erhalten jede Woche eine neue Protokolldatei ohne andere Konfiguration. Oder Sie könnten kreativ werden und etwas tun wie:
accesslog.filename = "|/usr/bin/cronolog --symlink=/var/log/webs/access.log /var/log/webs/%Y/%m/%a-access.log"
Und erhalten Sie eine Protokolldatei, die den Datenverkehr nach Wochentag anzeigt. zB alle Sonntage, alle Dienstage.
Was besser ist, ist, dass selbst wenn der Server längere Zeit nicht verfügbar ist, beim Neustart die richtige Protokolldatei verwendet wird.