Проблема: После развертывания microservices как войны через AWS EBS Tomcat 7 контейнера ... заметил, что вращение журнала, которое происходит в UTC день границы оставляет устаревший файл инода.Rsyslog несвежий обработчик файлов с catalina.out
Вращение журнала является скорее копией n truncate, которая вызывает устаревший обработчик файла для rsyslog, который прослушивает изменения в catalina.out. Каков наилучший способ предотвратить устаревание дескрипторов inode? Должен ли я указывать политику опрокидывания в logback.xml или logrotate или ...?
выхода Sudo Lsof /var/log/tomcat7/catalina.out (и отчет Судо стата последнего инода)
rsyslogd 18970 root 2r REG 202,1 1250 134754 /var/log/tomcat7/catalina.out
, но не соответствует войти выход Rsyslog в режиме отладки.
4638.114765354:7fc839b8c700: stream checking for file change on '/var/log/tomcat7/catalina.out', inode 135952/135952file 7 read 0 bytes
Обход Остановить Tomcat, удалить catalina.out, а затем перезапустить Tomcat. Это позволило rsyslog продолжить потоки новых записей.
Однако через несколько часов rsyslog не смог передать новые записи журнала на сервер назначения rsyslog. Журнал отладки rsyslog содержит тот же индекс, что и вывод stat и lsof. Если вы запустите
sudo stat /var/log/tomcat7/catalina.out
rsyslog снова начинает поток.
Вы заметили, что rsyslog прерывает потоковое прерывание за пределами случая использования опрокидывания журнала?
Зачем нужен sudo stat /var/log/tomcat7/catalina.out
rsyslog?
отвечая на мой собственный вопрос: 1. Похоже, что copyntruncate является встречающийся для catalina.out не только во время опроса в режиме UTC, но и в течение дня. 2. sudo stat сообщает оболочке о переоценке местоположения inode любого места назначения, которое вы ему даете ... следовательно, причина, по которой клиент rsyslog снова начинает поток через imfile – babalu