Acabei de instalar o haproxy no meu servidor de teste.
Existe uma maneira de fazê-lo gravar seus logs em um arquivo local, em vez de syslog?
Isso é apenas para teste, por isso não quero começar a abrir portas / sobrecarregar o syslog com todos os meus dados de teste.
Infelizmente, a única informação que posso encontrar gira em torno do 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 touch /home/user/ha.log
e reiniciei no momento em que obtive:
[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?
Respostas:
O Haproxy simplesmente não suporta o log de arquivos. Conforme declarado na documentação ( https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#3.1-log ), a instrução "log" usa como primeiro parâmetro um endereço. Se for um arquivo, é um soquete unix e o HAProxy falará no formato syslog para esse soquete. O Haproxy foi projetado assim porque sua responsabilidade é solicitar solicitações de proxy, não gravar arquivos, delegar a gravação de arquivos de log no syslog. Se você não quiser mexer com sua máquina, pode, por exemplo, instalar o logstash e executar:
logstash -e 'input { unix { path => "/tmp/haprxoy_log.sock" } } output { stdout { } }'
e adicionar:log /tmp/haprxoy_log.sock
No seu haproxy.cfg para testá-lo.fonte
Você pode alterar o arquivo de configuração do log haproxy
/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
,Você também deve atualizar o caminho do log
/etc/logrotate.d/haproxy
para o novo caminho. Para que ele gire e comprima o arquivo de log no caminho recém-configurado usandogzip
.Em seguida, reinicie o rsyslog.service.
Agora o
haproxy.log.*
arquivo estará no/var/log/haproxy/
diretóriofonte
Você tentou configurar no diretório pessoal do usuário, o haproxy não tem permissão para acessar o diretório pessoal do usuário, o que causa um problema.
Em vez disso, tente em outro local, crie o diretório em
/var/<directory>
fonte
sudo touch /var/log/ha.log
e adicioneilog /var/log/ha.log local0
à minha configuração, mas obtive o mesmo erro acimaconnection refused
.'log' expects <address> and <facility> as arguments.
e exigia algo lá. De acordo com as instruções<facility> must be one of the 24 standard syslog facilities
(que eu acho que pode ser parte do problema)