faz log HAPROXY para um arquivo local em vez de syslog?

12

Acabei de instalar o haproxy no meu servidor de teste.

Existe uma maneira de fazer com que ele grave seus logs em um arquivo local, em vez de syslog?

Isto é apenas para testes, por isso não quero começar a abrir portas / encher o syslog com todos os meus dados de teste.

Infelizmente, a única informação que posso encontrar gira em torno do registro em log em um servidor syslog.

Eu tentei usar:

log /home/user/ha.log local0

na minha configuração. Mas isso me disse:

[ALERT] 039/095022 (9528) : sendto logger #1 failed: No such file or directory (errno=2)

Quando eu reiniciei. Então eu criei o arquivo com touch /home/user/ha.log e reiniciei no ponto em que consegui:

[ALERT] 039/095055 (9593) : sendto logger #1 failed: Connection refused (errno=111)

Isso é possível, ou terei que configurar o syslog etc. para ver meus dados de teste?

    
por IGGt 09.02.2016 / 11:07

3 respostas

11

O haproxy simplesmente não suporta o registro em arquivos. Conforme declarado na documentação ( link ), a declaração "log" leva primeiro parâmetro, um endereço. Se for um arquivo, é um soquete unix e o HAProxy falará no formato syslog para este soquete. O haproxy é projetado assim porque sua responsabilidade é fazer solicitações de proxy, não gravar arquivos, delegar a gravação de arquivos de log no syslog. Se você não quer mexer com sua máquina, você pode, por exemplo, instalar o logstash e executar: %código% e adicione: %código% Em seu haproxy.cfg para testá-lo.

    
por 17.02.2017 / 12:16
6

Você pode alterar o arquivo de configuração do log haproxy em /etc/rsyslog.d/ para apontar o arquivo para o caminho desejado. Não tenho certeza sobre outra distribuição. Para mim, estou usando o Debian. Eu mudei /etc/rsyslog.d/49-haproxy.conf para apontar para /var/log/haproxy/haproxy.log ,

# Create an additional socket in haproxy's chroot in order to allow logging via
# /dev/log to chroot'ed HAProxy processes
$AddUnixListenSocket /var/lib/haproxy/dev/log

# Send HAProxy messages to a dedicated logfile
if $programname startswith 'haproxy' then /var/log/haproxy/haproxy.log
&~

Você também deve atualizar o caminho de log em /etc/logrotate.d/haproxy para o novo caminho. Para que ele gire e comprima o arquivo de log no caminho recém-configurado usando gzip .

Em seguida, reinicie o rsyslog.service.

sudo systemctl restart rsyslog.service

Agora o arquivo haproxy.log.* estará no diretório /var/log/haproxy/ .

    
por 05.12.2017 / 10:09
0

Você tentou configurar no diretório inicial do usuário, haproxy não tem permissão para acessar o diretório pessoal do usuário, o que causa problemas.

Em vez disso, tente em outro local, crie um diretório em /var/<directory>

log /var/<directory>/ha.log
    
por 09.02.2016 / 11:22

Tags