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

Ведение журнала rsyslog в свернутый журнал вместо развернутого журнала

Простите меня, если я неясен, но я стараюсь сохранить это как можно безопаснее.

У меня есть сервер CentOS, настроенный как центральный удаленный сервер регистрации. Серверы отправляли свои журналы на этот сервер уже несколько месяцев без проблем. Эти файлы журналов обновляются ежемесячно и работают без происшествий. Однако в этом месяце (без каких-либо изменений конфигурации, о которых я знаю) rsyslog as решил отправить новые файлы журнала в свернутый файл журнала (access_log-20150901), а не развернутый файл (access_log).

Странно то, что я даже свернул бревно (access_log-20150901) в каталог архивов, и rsyslog все еще отправляет обновления в этот файл.

Я использую специальные фильтры, которые выглядят так:

if $programname contains 'access_log' then /var/log/remotelog/access_log

Однако он обновляет файл по адресу:

/var/log/remotelog/archive/access_log-20150901

Кто-нибудь знает, что здесь происходит?

К вашему сведению. Разрешения одинаковы для всех этих файлов и папок.

Изменить: исправлен logrotate с методом postrotate для перезапуска rsyslog после поворота журналов

/var/log/remotelog/access_log
{
    missingok
    notifempty
    monthly
    create 0660 <user> <group>
    rotate 12
    postrotate
        /sbin/service rsyslog reload > /dev/null 2>/dev/null || true
    endscript
}

Версия rsyslog: rsyslogd 8.9.0.ad1

ИМХО, у вас есть два основных варианта.

1) добавьте предложение "postrotate" в раздел logrotate для выдачи HUP для pid rsyslog

2) добавьте этот файл в спецификацию файлов rsyslog в /etc/logrotate.d/rsyslog файл.

Проблема в том, что вы никогда не перезапускали демон rsyslog после ротации, поэтому он по-прежнему внутренне сохраняет старый дескриптор файла. Вероятно, до сих пор это работало нормально, потому что ротация файлов rsyslog занимала больше времени, чем ротация этого файла, что означает, что HUP для файлов rsyslog наступил после ротации этого файла. В последнее время эта ротация занимала больше времени, чем ротация файлов rsyslog, поэтому HUP выполнялась до закрытия / ротации этого файла журнала. После HUP, rsyslog по-прежнему был открыт старый файл, и функция rotate никогда не уведомляла rsyslog об обновлении его внутреннего дескриптора файла.