registro de haproxy en syslog


13

He instalado haproxy 1.5 a través de apt-get en Ubuntu 14.04 vía ppa:vbernat/haproxy-1.5según http://haproxy.debian.net/

El problema es iniciar sesión en /var/log/sysloglugar de/var/log/haproxy.log

La configuración es básicamente la predeterminada:

/etc/haproxy/haproxy.cfg

global
    log /dev/log    local0
    log /dev/log    local1 notice
    chroot /var/lib/haproxy
    stats socket /run/haproxy/admin.sock mode 660 level admin
    stats timeout 30s
    user haproxy
    group haproxy
    daemon

    # Default SSL material locations
    ca-base /etc/ssl/certs
    crt-base /etc/ssl/private

    # Default ciphers to use on SSL-enabled listening sockets.
    # For more information, see ciphers(1SSL).
    ssl-default-bind-ciphers kEECDH+aRSA+AES:kRSA+AES:+AES256:RC4-SHA:!kEDH:!LOW:!EXP:!MD5:!aNULL:!eNULL
        ssl-default-bind-options no-sslv3

defaults
    log global
    mode    http
    option  httplog
    option  dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000
    errorfile 400 /etc/haproxy/errors/400.http
    errorfile 403 /etc/haproxy/errors/403.http
    errorfile 408 /etc/haproxy/errors/408.http
    errorfile 500 /etc/haproxy/errors/500.http
    errorfile 502 /etc/haproxy/errors/502.http
    errorfile 503 /etc/haproxy/errors/503.http
    errorfile 504 /etc/haproxy/errors/504.http

/etc/rsyslog.d

# 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.log
&~

Respuestas:


21

Muy engañoso. :-) Y aquí está la respuesta engañosa:

Observe el archivo en /etc/rsyslog.dSe dice que inicie sesión en haproxy /var/log/haproxy.logPero esto no surtirá efecto sin reiniciar rsyslog:

service rsyslog restart

9

El haproxy.confarchivo predeterminado proporciona instrucciones claras en la Configuración global - global. Aquí estoy copia pegándolo por ti

# ------------------------------------------------- --------------------
# Configuración global
# ------------------------------------------------- --------------------
global
    # para que estos mensajes terminen en /var/log/haproxy.log, lo hará
    # Necesitar:
    # #
    # 1) configure syslog para aceptar eventos de registro de red. Esto esta hecho
    # agregando la opción '-r' a SYSLOGD_OPTIONS en
    # / etc / sysconfig / syslog
    # #
    # 2) configure los eventos locales2 para ir a /var/log/haproxy.log
    # archivo. Se puede agregar una línea como la siguiente a
    # / etc / sysconfig / syslog
    # #
    # #

En mi caso, por ejemplo, estoy ejecutando haproxy en CentOS 6.6, el mismo servidor syslogd y tuve que hacer lo siguiente para iniciar sesión en /var/log/haproxy.log:

  1. Agregar debajo de la línea a /etc/rsyslog.d/haproxy.conf-

    local2. * /var/log/haproxy.log
  2. Habilite el registro syslogd en el servidor -

# Proporciona recepción de syslog UDP
$ ModLoad imudp
$ UDPServerRun 514
$ UDPServerAddress 127.0.0.1

2
En la última parte, en el segundo paso (Habilitar el registro de syslogd en el servidor); cambia esta configuración en el archivo /etc/rsyslog.conf. Después de eso, reinicie el servicio rsyslog: service rsyslog restart
— Edenshaw

6

Comenta esta línea de /etc/rsyslog.d

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

1
/etc/rsyslog.des un directorio, no un archivo. No estoy seguro de las diferencias entre 1.5 y 1.6 en Ubuntu, pero el archivo /etc/rsyslog.d/49-haproxy.confexiste después de la instalación de 1.6. Esto tiene las siguientes 3 líneas: $AddUnixListenSocket /var/lib/haproxy/dev/log \n if $programname startswith 'haproxy' then /var/log/haproxy.log \n &~(agregué "\ n" para denotar las nuevas líneas)
— fideloper

3

el principal problema es que el haproxy chrooteado no podrá acceder /dev/log y, para evitar el problema, puede:

  • Habilite syslog para escuchar en el socket UDP (generalmente en el puerto 514) como se describe en los otros mensajes
  • Cree el directorio /var/lib/haproxy/devy monte /devcon la opción de vinculación en/var/lib/haproxy/dev

Funciona de cualquier manera.

[editar]

Después de 3 años, algo ha cambiado. Haproxy ahora crea un archivo llamado/etc/rsyslog.d/49-haproxy . Una de las líneas en el archivo es:

$AddUnixListenSocket /var/lib/haproxy/dev/log.

En este caso, el entorno chroot puede usar /dev/log


También puede simplemente agregar un socket de registro en el chroot. rsyslog puede tener múltiples. (Daría un ejemplo, pero han pasado años)
— Florian Heigl

Este ya no es el caso para las versiones más nuevas de HAProxy, estoy ejecutando la versión 1.5.4 con una configuración chroot pero iniciando sesión /dev/log.
— Overbryd

@Overbryd sí y no. El nuevo haproxy agrega un archivo en /etc/rsyslog.d, con la siguiente declaración dentro: $ AddUnixListenSocket / var / lib / haproxy / dev / log Voy a editar mi comentario en consecuencia.
— maxadamo
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.