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

named остановил запись в rsyslog после ротации журналов

CentOS 6.2, привязка 9.7.3, rsyslog 4.6.2

Я недавно настроил сервер и заметил, что named перестал входить в /var/log/messages после того, как бревна повернулись. Я подумал, что это странно, поскольку все журналы происходят через rsyslog и named не записывает непосредственно в файл журнала.

Это было еще более странно, потому что я получил HUP named после обновления файла зоны, но он все еще не регистрируется.

После того, как я остановился и перезапустил named, ведение журнала возобновилось.

Что тут происходит? PID системного журнала не изменился (/var/run/syslogd.pid совпадает с PID, показанным в ps). Открывает ли rsyslog новый сокет, когда logrotate вращает свои журналы, а HUP его выполняет?

/etc/logrotate.d/syslog:

/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

И rsyslogd продолжает регистрацию после поворота - он просто назван (и, возможно, другие службы), которые не подключаются к rsyslogd правильно. Вот / var / log / messages-20120212:

Feb  5 04:45:03 linus kernel: imklog 4.6.2, log source = /proc/kmsg started.
Feb  5 04:45:03 linus rsyslogd: [origin software="rsyslogd" swVersion="4.6.2" x-pid="1178" x-info="http://www.rsyslog.com"] (re)start
Feb  9 16:16:29 linus yum[13028]: Installed: 2:vim-minimal-7.2.411-1.6.el6.i686
Feb 12 04:09:22 linus rsyslogd: [origin software="rsyslogd" swVersion="4.6.2" x-pid="1178" x-info="http://www.rsyslog.com"] rsyslogd was HUPed, type 'restart'.
Feb 12 04:09:22 linus kernel: Kernel logging (proc) stopped.

И я запускаю только rsyslogd (который по какой-то причине сохраняет свой PID в /var/run/syslogd.pid):

root      1178  0.0  0.1  29496  1488 ?        Sl   Jan29   0:20 /sbin/rsyslogd -i /var/run/syslogd.pid -c 4
root      5960  0.0  0.0   2300   504 pts/0    S+   17:45   0:00 grep syslog

Я полагаю, вы используете привязку с привязкой к корневому каталогу. Вы должны добавить эту строку в rsyslog.conf:

$ AddUnixListenSocket / var / named / chroot / dev / log

Убедитесь, что вы используете правильный путь к chrooted dev в вашей системе.

Luf

Вращение изменило индексный дескриптор файла, поэтому Rsyslog пытался добавить его к старому индексу. Чтобы решить эту проблему, измените конфигурацию logrotate, чтобы скопировать текущий файл, а затем обрезать его во время ротации.