Como manter as mensagens de log haproxy fora de/var/log/syslog

Como manter as mensagens de log haproxy fora de/var/log/syslog

Eu configurei o log haproxy via rsyslogd usando as dicas deEste artigo, e tudo parece estar funcionando bem. Os arquivos de log recebem as mensagens de log.

No entanto, todas as mensagens de log do haproxy também aparecem em /var/log/syslog. Isso significa que assim que o servidor entrar no ar, o syslog será totalmente inútil, pois será atropelado por mensagens de log haproxy.

Eu gostaria de filtrar essas mensagens de /var/log/syslog. Depois de revisar a documentação do rsyslogd, tentei alterar o arquivo /etc/rsyslog.d/50-default.confassim:

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

Eu simplesmente adicionei a ;haproxy.noneparte. Depois de reiniciar o rsyslogd, ele parou de funcionar completamente até reverter minhas alterações.

O que estou fazendo de errado?

Responder1

Você também pode fazer o seguinte, para que eles não apareçam em nenhum outro log:

local0.*                        -/var/log/haproxy.log
& ~

O & ~meio é não colocar o que corresponde à linha acima em nenhum outro lugar para o restante das regras.

Responder2

O uso de & ~foi descontinuado na v7 do rsyslogd e você é incentivado a usá-lo & stop. Você pode ler mais sobre isso nesta seção dopágina de compatibilidade v7.

As ações omruleset e descartar (~) estão obsoletas

Ambos continuam a funcionar, mas foram substituídos por alternativas melhores.

A ação de descarte (caractere til) foi substituída pela diretiva “stop” RainerScript. É considerado mais intuitivo e oferece desempenho um pouco melhor.

O módulo omruleset foi substituído pela diretiva “call” RainerScript. Call permite executar um conjunto de regras como uma sub-rotina e faz isso com desempenho muito superior ao do omruleset. Observe que omruleset pode ser executado em uma fila assíncrona. Isso foi mais um efeito colateral do que desejado e não é apoiado pela declaração de chamada. Se esse efeito fosse necessário, ele poderia simplesmente ser simulado executando as ações dos conjuntos de regras chamadas de forma assíncrona (o que, em qualquer caso, é a maneira correta de lidar com isso).

Observe que os módulos obsoletos emitem mensagens de aviso quando são usados. Eles informam que a construção está obsoleta e qual instrução deve ser usada como substituição. Isso não afeta as operações: ambos os módulos ainda estão totalmente operacionais e não serão removidos no período v7.

Então, para o HAProxy, algo assim:

$ more /etc/rsyslog.d/haproxy.conf
local2.*    /var/log/haproxy.log
& stop

Quanto ao funcionamento, & stopdiz ao rsyslogd para descartar quaisquer mensagens adicionais que correspondam às regras anteriormente correspondidas até este ponto. Para garantir que esta regra seja escolhida desde o início, você pode alterar o nome do arquivo de /etc/rsyslog.d/haproxy.confpara /etc/rsyslog.d/00-haproxy.conf.

Responder3

Ok, eu descobri. Esta é a minha /etc/rsyslog.d/20-haproxy.confaparência:

$ModLoad imudp
$UDPServerRun 514

local0.* -/var/log/haproxy_0.log
local1.* -/var/log/haproxy_1.log

Mudei a linha 50-default.confpara:

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

E agora parece estar fazendo o que eu quero.

Responder4

Prefiro não mexer na ordem do arquivo, então adiciono um local0.none ao.entrada de linha. A configuração é semelhante a:

*.info;mail.none;authpriv.none;cron.none;local2.none     /var/log/messages

local2.*                                                 /var/log/haproxy.log

(Testado no CentOS 7)

Espero que ajude!

informação relacionada