У моїй конфігурації у мене є rsyslog, який відповідає за наступні зміни /home/user/my_app/shared/log/unicorn.stderr.log
використання imfile
. Вміст надсилається на інший сервер віддаленого журналу за допомогою TCP.
Коли файл журналу обертається, rsyslog перестає надсилати дані на віддалений сервер.
Я спробував перезавантажити rsyslog, надіслав сигнал HUP і повністю перезапустив його, але нічого не вийшло.
Єдині способи, які я міг знайти, що насправді працювали, були брудними:
- припиніть службу, видаліть файли stat rsyslog та запустити rsyslog знову. Все, що знаходиться в гачці, що знаходиться в заводі в моєму файлі logrotate.
kill -9
rsyslog і запустіть його заново.
Чи є для мене правильний спосіб зробити це, не торкаючись внутрішніх даних rsyslog?
Файл Rsyslog
$ ModLoad позначка $ ModLoad imudp $ ModLoad imtcp $ ModLoad imuxsock $ ModLoad imklog Імфіляція $ ModLoad $ template WithoutTimeFormat, "[середовище] [% syslogtag%] -% msg%" $ WorkDirectory / var / spool / rsyslog $ InputFileName /home/user/my_app/shared/log/unicorn.stderr.log $ InputFileTag єдиноріг-stderr $ InputFileStateFile stat-unicorn-stderr $ InputFileSeverity інформація $ InputFileFacility local8 $ InputFilePollInterval 1 $ InputFilePersistStateInterval 1 $ InputRunFileMonitor # Переслати на віддалений сервер якщо $ syslogtag містить 'apache-', то @@ my_server: 5000; WithoutTimeFormat : syslogtag, містить, "apache-" ~ *. * @@ my_server: 5000; SyslFormat
Файл логротету
/home/user/my_app/shared/log/*.log { щодня пропуск dateext обертати 30 компрес notifempty розширення gz копіювати створити 640 користувачів користувача спільні сценарії поворот (зупинити rsyslog && rm / var / spool / rsyslog / stat- * && start rsyslog 2> & 1) || правда закінчення }
FYI, файл читається для користувача rsyslog, мій сервер доступний, а інші файли журналів, які не обертаються в одному циклі, продовжують відстежуватися належним чином.
Я запускаю Ubuntu 12.04.
post-rotate
(що не є річчю) замість тогоpostrotate
, що той оригінальний сценарій logrotate, який ви мали, добре працював би з rsyslog (якби сценарій postrotate був запущений ) ...?