Como faço para impedir que as informações de log do postfix entrem no syslog?

6

Nós temos um vps rodando o Ubuntu 10.04.4 LTS, e ao tentar encontrar uma solução para um problema de php, eu me tornei ciente do que parece ser um problema com o sistema syslog - não tenho certeza.

O arquivo syslog.conf tem esta aparência:

    auth,authpriv.*      -/var/log/auth.log
*.*;auth,authpriv.none  -/var/log/syslog
#cron.*          -/var/log/cron.log
daemon.*            -/var/log/daemon.log
kern.*              -/var/log/kern.log
lpr.*               -/var/log/lpr.log
mail.*              -/opt/psa/var/log/maillog
user.*              -/var/log/user.log

#
# Logging for the mail system.  Split it up so that
# it is easy to write scripts to parse these files.
#
mail.info           -/var/log/mail.info
mail.warning            -/var/log/mail.warn
mail.err         -/var/log/mail.err


# Logging for INN news system
#
news.crit        -/var/log/news/news.crit
news.err         -/var/log/news/news.err
news.notice         -/var/log/news/news.notice

#
# Some 'catch-all' logfiles.
#
*.=debug;\
    auth,authpriv.none;\
    news.none;mail.none -/var/log/debug
*.=info;*.=notice;*.=warning;\
    auth,authpriv.none;\
    cron,daemon.none;\
    mail,news.none      -/var/log/messages

#
# Emergencies are sent to everybody logged in.
#
*.emerg             *

#
# I like to have messages displayed on the console, but only on a virtual
# console I usually leave idle.
#
#daemon,mail.*;\
#   news.=crit;news.=err;news.=notice;\
#   *.=debug;*.=info;\
#   *.=notice;*.=warning    /dev/tty8

# The named pipe /dev/xconsole is for the 'xconsole' utility.  To use it,
# you must invoke 'xconsole' with the '-file' option:
# 
#    $ xconsole -file /dev/xconsole [...]
#
# NOTE: adjust the list below, or you'll go crazy if you have a reasonably
#      busy site..
#
daemon.*;mail.*;\
    news.err;\
    *.=debug;*.=info;\
    *.=notice;*.=warning    |/dev/xconsole

E o arquivo / var / log / syslog contém várias entradas como esta:

    Jun 10 04:04:00 lvps109-104-93-171 postfix/qmgr[688]: 814E0676E997: removed
Jun 10 04:04:01 lvps109-104-93-171 postfix/smtpd[11105]: connect from mail-we0-f196.google.com[74.125.82.196]

/var/log/mail.info, /var/log/mail.warn, & /var/log/mail.err estão todos vazios apesar da configuração acima direcionando as mensagens relevantes para eles.

Eu tentei adicionar ' mail.* -/var/log/mail.log ' ao arquivo conf para ver se consigo obter o arquivo smtp & as mensagens qmgr são repetidas lá, mas esse arquivo de log permanece vazio também.

Eu tentei alterar ' *.*;auth,authpriv.none -/var/log/syslog ' para *.*;auth,authpriv.none;mail.none -/var/log/syslog para ver se eu poderia impedir que qualquer mensagem de postfix entrasse em / var / log / syslog, mas eles continuam indo para lá.

Eu tenho procurado por idades para encontrar o comando que eu preciso para redirecionar essas mensagens postfix para o arquivo mail.log, mas as postagens que eu encontrei parecem apenas mencionar o .info, .err, & mensagens .warn. Até onde consegui descobrir, o daemon syslog deveria direcioná-los para os arquivos relevantes.

Então minhas perguntas são: Como faço para redirecionar as mensagens do postfix para longe de / var / log / syslog? Por que não são o .warn, .info, & .err mensagens indo onde deveriam estar?

Qualquer ajuda recebida com gratidão - Muito obrigado.

    
por Paulioliolio 10.06.2013 / 05:39

4 respostas

6

Eu acho que você está usando o rsyslog? Você tem que dizer ao rsyslog para parar o processo da mensagem depois de escrever no arquivo apropriado. Isso pode ser feito com & ~ .

mail.*                          -/var/log/mail.info
& ~

Coloque estas linhas antes da linha que contém *.* .

Reinicie o syslog quando terminar.

    
por 20.01.2014 / 13:23
2

Isso é o que funcionou para mim no Ubuntu 14.04.1 LTS para manter os itens de e-mail fora do syslog:

*.*;mail,auth,authpriv.none     /var/log/syslog

E eu divido os logs de e-mail em erros e não-erros com isso, o que também está funcionando:

mail.debug;mail.!err    /var/log/mail.log
mail.err        /var/log/mail.err

Basicamente tudo o que está no nível .de depuração e acima vai para mail.log, exceto para qualquer coisa que esteja no nível .err e acima, que vai para o arquivo mail.err.

A única coisa que posso imaginar que poderia ter feito com que seus arquivos de log de e-mail estivessem vazios seria ter - na frente do caminho do arquivo, o que eu acho que tem a ver com não escrever o log imediatamente.

Referência: seção "Seletores" do link

    
por 30.09.2014 / 17:51
2

Acima, TraceElements disse que o seguinte foi parte da solução, mas a primeira linha parece contra-intuitiva para mim, a saber:

*.*;mail,auth,authpriv.none     /var/log/syslog

O que essa linha faz? Parece-me que deveria adicionar mensagens de e-mail para / var / log / syslog, mas estamos tentando fazer o oposto aqui. Ah ha, isso se expande para mail.none talvez? Mas então por que a tentativa do OP na solução seguinte não funcionou para ele / ela? Isso foi:

*.*;auth,authpriv.none;mail.none -/var/log/syslog

mas ele / ela disse, "para ver se eu poderia parar qualquer mensagem postfix em / var / log / syslog, mas eles continuam indo para lá."

É simplesmente que o segundo ponto-e-vírgula dele está estragando tudo?

De qualquer forma, a solução da TraceElement está funcionando para mim, no Ubuntu 16.04.2 LTS.

    
por 26.05.2017 / 11:01
1

Esta linha:

*.*;auth,authpriv.none  -/var/log/syslog

significa log every facility em cada nível para / var / log / syslog, com authpriv sendo a única exceção. Obviamente, isso inclui o correio.

Você também está dizendo ao syslog para não sincronizar o arquivo imediatamente; Isso significa que, se você não estiver obtendo muitas linhas de log de email, elas podem simplesmente não ser gravadas imediatamente nos arquivos maillog. O arquivo syslog, no entanto, conterá tantas mensagens que provavelmente serão gravadas anteriormente.

Além disso, você precisa reiniciar o serviço de log depois de fazer alterações no arquivo. Geralmente isso é feito simplesmente enviando um HUP para o PID do processo syslogd. Quando você tiver feito isso, verifique / var / log / syslog para quaisquer mensagens sobre linhas no syslogd.conf que não puderam ser analisadas.

    
por 10.06.2013 / 09:33