Este artigo deve mostrar como a função "debug on demand" funciona no rsyslog. Ele foi testado e verificado com o rsyslog 6.1.0 (v6-Devel) no Fedora 13 (as etapas podem variar em sistemas operacionais diferentes). Assume-se que o rsyslog já está trabalhando no sistema. Nas notas sobre a instalação e configuração, por favor, dê uma olhada na documentação. Debug on Demand está disponível desde a versão 4.5.7.
Para que essa opção funcione, precisamos ativá-la primeiro. Isso é feito ativando-o e especificando um caminho para o arquivo de log de depuração. Abra um terminal com direitos de root e use os seguintes comandos:
export RSYSLOG_DEBUG="DebugOnDemand NoStdOut"
export RSYSLOG_DEBUGLOG=/somepath/example.log
A primeira opção ativa o "debug on demand" sem saída padrão. Isso é necessário para desativá-lo ao iniciar o serviço. A segunda opção especifica o caminho e o nome do arquivo de log.
Agora temos que interromper o serviço rsyslog antes de estarmos prontos. Use o seguinte comando:
/etc/rc.d/init.d/rsyslog stop
Agora paramos o serviço e precisamos iniciá-lo novamente. Na configuração atual, precisamos iniciar o rsyslog como um aplicativo de primeiro plano. Devido a ser muito mais simples configurá-lo dessa maneira, o rsyslog precisa ser um aplicativo de primeiro plano para "depuração sob demanda" para funcionar em vez de um serviço de segundo plano. Inicie novamente como aplicativo de primeiro plano com o seguinte comando:
rsyslogd -n
Abra um segundo terminal (novamente com root) para que possamos ativar ou desativar o "debug on demand". Use este comando:
kill -USR1 'cat /var/run/rsyslogd.pid'
Usando este comando uma vez habilitará o modo de depuração. Usá-lo novamente irá desativá-lo. Por favor, note que você definitivamente precisa "-USR1" senão o rsyslog será realmente morto. Além disso, certifique-se de usar os backticks. Estes são importantes.
É basicamente isso. Agora você pode revisar seus arquivos de log "depuração sob demanda".