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.