Назад | Перейти на главную страницу

rsyslog из стока Heroku создает пустые файлы журналов

Я отправляю журналы из своего приложения Heroku на сервер rsyslog, но полученные файлы журналов кажутся пустыми. Конфигурация rsyslog для получения удаленных сообщений выглядит следующим образом:

$template RemoteDailyLog,"/var/log/remote/%hostname%/%$year%/%$month%/%$day%.log"
:fromhost-ip, !isequal, "127.0.0.1" -?RemoteDailyLog
& ~

Моя полная конфигурация rsyslog доступно в этой пасте.

Эта конфигурация, похоже, правильно создает каталоги. Я вижу, что имя хоста ведения журнала приложения Heroku (в форме «d.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx») появляется в / var / log на хосте rsyslog, что означает, что сообщения журнала успешно передаются демону ведения журнала, но итоговые файлы журналов имеют нулевой размер.

Я предполагаю, что проблема связана с rsyslog, а не с Heroku, но я не уверен, где искать дальше.

Изучив сервер / var / log / syslog, я обнаружил, что у rsyslog возникли проблемы с открытием динамических файлов. Оказывается, конфигурация Ubuntu 10.04 LTS по умолчанию для rsyslog не подходит для динамических (основанных на шаблонах) файлов журнала. Предлагаемый патч, созданный Ричардом Флемингом, выглядит следующим образом:

--- /etc/rsyslog.conf.orig  2009-11-17 11:21:10.874573462 -0500
+++ /etc/rsyslog.conf   2009-11-17 12:45:15.604573200 -0500
@@ -42,9 +42,11 @@
 $FileGroup adm
 $FileCreateMode 0640
 $DirCreateMode 0755
+$DirOwner syslog
+$DirGroup adm
 $Umask 0022
 $PrivDropToUser syslog
-$PrivDropToGroup syslog
+$PrivDropToGroup adm

 #
 # Include all config files in /etc/rsyslog.d/

Для получения дополнительной информации см .: https://bugs.launchpad.net/ubuntu/+source/rsyslog/+bug/484336