Apache httpd: Enviar logs de erros para o syslog e o disco local? Sem tocar no /etc/syslog.conf?

2

Eu tenho um servidor Apache httpd 2.2. Eu quero registrar todas as mensagens usando syslog, para que as solicitações sejam enviadas para o nosso servidor syslog central. Também quero garantir que todas as mensagens de log sejam enviadas ao disco local, para que um administrador de sistema possa ter acesso fácil aos arquivos de log no sistema local.

É fácil enviar logs de acesso HTTP para o disco local e para o syslog. Um método comum é:

LogFormat "%V %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog logs/access_log combined
CustomLog "|/usr/bin/logger -t httpd -i -p local4.info" combined

Mas não é fácil fazer isso para logs de erros. A configuração a seguir não funciona, porque os logs de erro usam apenas a última sub-rotina ErrorLog. A primeira estrofe ErrorLog é ignorada.

ErrorLog logs/error_log
ErrorLog syslog:local4.error

Como posso garantir que os logs de erros do Apache sejam gravados no disco local e enviados para o syslog?

É possível fazer isso sem tocar em /etc/syslog.conf ? Eu estou bem se meus usuários quiserem gerenciar seus próprios arquivos de configuração do Apache, mas eu não quero que eles toquem arquivos do sistema como /etc/syslog.conf

    
por Stefan Lasiewski 02.05.2012 / 20:55

2 respostas

2

Tente enviar todo o ErrorLog para um pipe, por exemplo, um script perl. Este script perl pode direcionar para o syslog e o disco local.

    
por 02.05.2012 / 21:55
6

Você pode usar:

ErrorLog "| tee -a /var/log/httpd/error_log | /usr/bin/logger -t httpd -i -p local4.error"

para fazer o que você procura.

    
por 25.11.2014 / 18:02