Nella mia configurazione, ho rsyslog che si occupa delle seguenti modifiche /home/user/my_app/shared/log/unicorn.stderr.log
all'utilizzo imfile
. Il contenuto viene inviato a un altro server di registrazione remoto tramite TCP.
Quando il file di registro ruota, rsyslog interrompe l'invio di dati al server remoto.
Ho provato a ricaricare rsyslog, inviare un segnale HUP e riavviarlo del tutto, ma nulla ha funzionato.
Gli unici modi in cui ho scoperto che funzionava davvero erano sporchi:
- interrompere il servizio, eliminare i file delle statistiche rsyslog e riavviare rsyslog. Tutto ciò in un gancio postrotate nel mio file logrotate.
kill -9
rsyslog e ricominciare da capo.
C'è un modo corretto per farlo senza toccare gli interni di rsyslog?
File Rsyslog
$ ModLoad immark $ ModLoad imudp $ ModLoad imtcp $ ModLoad imuxsock $ ModLoad imklog $ ModLoad imfile $ template WithoutTimeFormat, "[ambiente] [% syslogtag%] -% msg%" $ WorkDirectory / var / spool / rsyslog $ InputFileName /home/user/my_app/shared/log/unicorn.stderr.log $ InputFileTag unicorn-stderr $ InputFileStateFile stat-unicorn-stderr $ InputFileSeverity informazioni $ InputFileFacility local8 $ InputFilePollInterval 1 $ InputFilePersistStateInterval 1 $ InputRunFileMonitor # Inoltra al server remoto se $ syslogtag contiene 'apache-' allora @@ my_server: 5000; WithoutTimeFormat : syslogtag, contiene, "apache-" ~ *. * @@ my_server: 5000; SyslFormat
Logrotate file
/home/user/my_app/shared/log/*.log { quotidiano missingok dateext ruota di 30 comprimere notifempty estensione gz copytruncate crea 640 utenti utente sharedscripts post-rotazione (ferma rsyslog && rm / var / spool / rsyslog / stat- * && avvia rsyslog 2> & 1) || vero endscript }
Cordiali saluti, il file è leggibile per l'utente rsyslog, il mio server è raggiungibile e altri file di registro che non ruotano sullo stesso ciclo continuano a essere tracciati correttamente.
Sto eseguendo Ubuntu 12.04.
post-rotate
(cosa che non è una cosa) invece dipostrotate
, perché quello script logrotate originale che avresti dovuto avere avrebbe dovuto funzionare bene con rsyslog (se lo script postrotate fosse in esecuzione ) ...?