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

rsyslog работает со старой конфигурацией

Я использую шаблон для динамического создания имен файлов rsyslog. Я внес некоторые изменения в исходный формат, но после перезапуска rsyslog по-прежнему использует как новый шаблон, так и старый.

Мой шаблон имени файла был следующим:

$template RemoteDailyLog,"/var/log/remote/%hostname%/%$year%/%$month%/%$day%.log"

К этому:

$template RemoteDailyLog,"/var/log/remote/%hostname%/%fromhost-ip%/%$year%/%$month%/%$day%.log"

Я остановил rsyslogd, используя service rsyslog stop, удалил все мои файлы журнала, используя rm -rf /var/log/remote/*, а затем перезапустил rsyslogd с service rsyslog start.

Проблема в том, что rsyslog создает структуры папок типа "/var/log/remote/%hostname%/%$year%/%$month%/%$day%.log" (т.е. без удаленного IP-адреса), который больше нигде не отображается в моей конфигурации.

Возможно ли, что старые данные журнала или конфигурации были где-то кэшированы и сохраняются после перезапуска сервера? Это меня немного пугает.

Эта проблема разрешилась сама собой после исправления связанный вопрос У меня был с rsyslog. Я не уверен, насколько это актуально, но если у rsyslog возникают проблемы с открытием файлов динамического журнала, похоже, что у него есть некоторая нестабильность в отношении прошлых конфигураций. Во всяком случае, вот перепечатка моего решения:

Изучив сервер / 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

Я столкнулся с той же странной проблемой, и мое решение проще (поток сводится к проблеме с разрешениями) ... поскольку файл состояния не содержит никакой конфиденциальной информации:

chmod 777 /var/lib/rsyslog

затем перезапустите rsyslog несколько раз.

Отказ от ответственности: Я знаю, что давать всем все в каталоге - не лучшая практика, и этот обходной путь немного глуп, но в этом случае из-за необъяснимой причины ошибки rsyslog мне пришлось сделать исключение, поскольку папка используется исключительно для состояния файлы для rsyslog. Обратите внимание, что я пробовал другие chown настройки для предоставления привилегий эффективному пользователю rsyslog безуспешно, отсюда и этот глупый обходной путь.