In meiner Konfiguration habe ich rsyslog, das für die folgenden Änderungen der /home/user/my_app/shared/log/unicorn.stderr.logVerwendung verantwortlich ist imfile. Der Inhalt wird mithilfe von TCP an einen anderen Remote-Protokollierungsserver gesendet.
Wenn sich die Protokolldatei dreht, sendet rsyslog keine Daten mehr an den Remote-Server.
Ich habe versucht, rsyslog neu zu laden, ein HUP-Signal zu senden und es insgesamt neu zu starten, aber nichts hat funktioniert.
Die einzigen Möglichkeiten, die ich finden konnte, die tatsächlich funktionierten, waren schmutzig:
- Beenden Sie den Dienst, löschen Sie die rsyslog-Statistikdateien und starten Sie rsyslog erneut. All das in einem Postrotate-Hook in meiner Logrotate-Datei.
kill -9rsyslog und neu starten.
Gibt es eine richtige Möglichkeit für mich, dies zu tun, ohne die Interna von rsyslog zu berühren?
Rsyslog-Datei
$ ModLoad immark $ ModLoad imudp $ ModLoad imtcp $ ModLoad imuxsock $ ModLoad imklog $ ModLoad imfile $ template WithoutTimeFormat, "[Umgebung] [% syslogtag%] -% msg%" $ WorkDirectory / var / spool / rsyslog $ InputFileName /home/user/my_app/shared/log/unicorn.stderr.log $ InputFileTag unicorn-stderr $ InputFileStateFile stat-unicorn-stderr $ InputFileSeverity-Informationen $ InputFileFacility local8 $ InputFilePollInterval 1 $ InputFilePersistStateInterval 1 $ InputRunFileMonitor # An Remote-Server weiterleiten Wenn $ syslogtag 'apache-' enthält, dann @@ my_server: 5000; WithoutTimeFormat : syslogtag, enthält "apache-" ~ *. * @@ my_server: 5000; SyslFormat
Logrotate-Datei
/home/user/my_app/shared/log/*.log {
Täglich
Missingok
Datumsangabe
30 drehen
komprimieren
notifempty
Erweiterung gz
copytruncate
Erstellen Sie 640 Benutzer Benutzer
Sharedscripts
nachdrehen
(Stoppen Sie rsyslog && rm / var / spool / rsyslog / stat- * && starten Sie rsyslog 2> & 1) || wahr
Endschrift
}}
Zu Ihrer Information, die Datei ist für den Benutzer von rsyslog lesbar, mein Server ist erreichbar und andere Protokolldateien, die sich nicht im selben Zyklus drehen, werden weiterhin ordnungsgemäß verfolgt.
Ich verwende Ubuntu 12.04.
post-rotate(was keine Sache ist) verwendet habenpostrotate, da das ursprüngliche Logrotate-Skript, das Sie hatten, mit rsyslog gut hätte funktionieren sollen (wenn das Postrotate-Skript ausgeführt worden wäre ) ...?