Acabo de instalar haproxy en mi servidor de prueba.
¿Hay alguna manera de hacer que escriba sus registros en un archivo local, en lugar de syslog?
Esto es solo para pruebas, así que no quiero comenzar a abrir puertos / saturar syslog con todos mis datos de prueba.
Desafortunadamente, la única información que puedo encontrar gira en torno al inicio de sesión en un servidor syslog.
Intenté usar:
log /home/user/ha.log local0
en mi config. Pero eso me dijo:
[ALERT] 039/095022 (9528) : sendto logger #1 failed: No such file or directory (errno=2)
Cuando reinicié Así que creé el archivo touch /home/user/ha.log
y reinicié en ese momento obtuve:
[ALERT] 039/095055 (9593) : sendto logger #1 failed: Connection refused (errno=111)
¿Es esto posible o tendré que configurar syslog, etc. para ver mis datos de prueba?
Respuestas:
Haproxy simplemente no admite el registro en archivos. Como se indica en la documentación ( https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#3.1-log ), la declaración "log" toma como primer parámetro una dirección. Si se trata de un archivo, es un socket Unix y HAProxy hablará en el formato syslog a este socket. Haproxy está diseñado de esta manera porque su responsabilidad es proxy de solicitudes, no escribir archivos, delega la escritura de archivos de registro en syslog. Si no desea meterse con su máquina, puede, por ejemplo, instalar logstash y ejecutar:
logstash -e 'input { unix { path => "/tmp/haprxoy_log.sock" } } output { stdout { } }'
y agregar:log /tmp/haprxoy_log.sock
en su haproxy.cfg para probarlo.fuente
Puede cambiar el archivo de configuración de registro de haproxy
/etc/rsyslog.d/
para apuntar el archivo a la ruta que desee. No estoy seguro acerca de otra distribución. Para mí, estoy usando Debian. He cambiado/etc/rsyslog.d/49-haproxy.conf
para que apunte a/var/log/haproxy/haproxy.log
,También debe actualizar la ruta de registro en
/etc/logrotate.d/haproxy
la nueva ruta. Para que gire y comprima el archivo de registro en la ruta recién configurada usandogzip
.Luego reinicie rsyslog.service.
Ahora el
haproxy.log.*
archivo estará en el/var/log/haproxy/
directorio.fuente
Ha intentado configurarlo en el directorio de inicio del usuario, haproxy no tiene permiso para acceder al directorio de inicio del usuario, por lo que eso causa un problema.
En su lugar, intente en otra ubicación, cree el directorio en
/var/<directory>
fuente
sudo touch /var/log/ha.log
y agreguélog /var/log/ha.log local0
a mi configuración, pero obtuve el mismo error que el anteriorconnection refused
.'log' expects <address> and <facility> as arguments.
así que requería algo allí. De acuerdo con las instrucciones<facility> must be one of the 24 standard syslog facilities
(que creo que pueden ser parte del problema)