nomeou o log interrompido para o rsyslog depois que os logs foram rotacionados

3

CentOS 6.2, bind 9.7.3, rsyslog 4.6.2

Eu configurei recentemente um servidor, e notei que o nome parou de fazer o log para /var/log/messages depois que os logs foram rotacionados. Eu pensei que era estranho, uma vez que todo o log acontece através de rsyslog e named não escreve diretamente no arquivo de log.

Foi ainda mais estranho porque eu tinha HUPed named após atualizar um arquivo de zona, e ele ainda não estava logando.

Depois que parei e reiniciei o nome, o registro foi retomado.

O que está acontecendo aqui? O PID do syslog não foi alterado (/var/run/syslogd.pid corresponde ao PID mostrado em ps). O rsyslog está abrindo um novo socket quando o logrotate roda seus logs e o HUPs?

/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
}

E rsyslogd continua registrando após a rotação - apenas o nome (e possivelmente outros serviços) que não estão se conectando a rsyslogd corretamente. Aqui está / 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.

Estou apenas executando o rsyslogd (que por algum motivo salva seu PID em /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
    
por tomlogic 15.02.2012 / 01:02

2 respostas

2

Suponho que você esteja usando o bind do chrooted. Você tem que adicionar esta linha ao rsyslog.conf:

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

Certifique-se de usar o caminho certo para o desenvolvimento de chrooted em seu sistema.

Luf

    
por 04.06.2012 / 16:24
1

A rotação mudou o inode do arquivo, assim o Rsyslog estava tentando anexar ao inode antigo. Para resolver o problema, altere a configuração do logrotate para copiar o arquivo atual e truncá-lo no tempo de rotação.

    
por 15.02.2012 / 01:15