Saltar al contenido

Cómo mantener los mensajes de registro haproxy fuera de / var / log / syslog

Solución:

Solución 1:

También puede hacer lo siguiente para evitar que se incluyan en otros registros:

local0.*                        -/var/log/haproxy.log
& ~

los & ~ significa no poner lo que coincide en la línea anterior en ningún otro lugar para el resto de las reglas.

Solucion 2:

El uso de & ~ estaba en desuso en la v7 de rsyslogd, y se le recomienda usar & stop en lugar de. Puede leer más sobre esto en esta sección de la página de compatibilidad de v7.

Las acciones omruleset y discard (~) están en desuso

Ambos continúan funcionando, pero han sido reemplazados por mejores alternativas.

La acción de descarte (carácter de tilde) ha sido reemplazada por la directiva “detener” RainerScript. Se considera más intuitivo y ofrece un rendimiento ligeramente mejor.

El módulo omruleset ha sido reemplazado por la directiva “call” RainerScript. Call permite ejecutar un conjunto de reglas como una subrutina, y lo hace con un rendimiento mucho mayor que el de omruleset. Tenga en cuenta que omruleset se puede ejecutar desde una cola asíncrona. Esto fue más un efecto secundario que deseado y no está respaldado por la declaración de llamada. Si ese efecto fuera necesario, simplemente se puede simular ejecutando las acciones de conjuntos de reglas llamadas asincrónicamente (lo que en cualquier caso es la forma correcta de manejar esto).

Tenga en cuenta que los módulos obsoletos emiten mensajes de advertencia cuando se utilizan. Dicen que la construcción está obsoleta y qué declaración se utilizará como reemplazo. Esto no afecta las operaciones: ambos módulos aún están en pleno funcionamiento y no se eliminarán en el plazo de la v7.

Entonces para HAProxy algo como esto en su lugar:

$ more /etc/rsyslog.d/haproxy.conf
local2.*    /var/log/haproxy.log
& stop

En cuanto a cómo funciona, el & stop le dice a rsyslogd que descarte cualquier mensaje adicional que coincida con las reglas previamente coincidentes hasta este punto. Para garantizar que esta regla se adopte desde el principio, puede cambiar el nombre del archivo de /etc/rsyslog.d/haproxy.conf para /etc/rsyslog.d/00-haproxy.conf.


Solución 3:

Ok, lo descubrí. Esto es lo que mi /etc/rsyslog.d/20-haproxy.conf parece:

$ModLoad imudp
$UDPServerRun 514

local0.* -/var/log/haproxy_0.log
local1.* -/var/log/haproxy_1.log

Cambié la línea en 50-default.conf para:

*.*;auth,authpriv,local0,local1.none     -/var/log/syslog

Y ahora parece estar haciendo lo que quiero.


Solución 4:

Existe una mejor solución para el registro haproxy.

  • HAproxy se ejecuta en chroot, por lo que no se puede acceder /dev/log
  • De acuerdo con el manual oficial, rsyslog debe configurarse para escuchar el conector de red:

    # to have these messages end up in /var/log/haproxy.log you will
    # need to:
    #
    # 1) configure syslog to accept network log events.  This is done
    #    by adding the '-r' option to the SYSLOGD_OPTIONS in
    #    /etc/sysconfig/syslog
    #
    # 2) configure local2 events to go to the /var/log/haproxy.log
    #   file. A line like the following can be added to
    #   /etc/sysconfig/syslog
    

Pero puede usar solo sockets rsyslog para eso:

rsyslog.d / haproxy.conf:

    # HAproxy local socket
    $AddUnixListenSocket /var/lib/haproxy/dev/log
    :programname, contains, "haproxy" /var/log/haproxy.log
    & stop

haproxy.cfg:

    global
          log         /dev/log daemon
          chroot      /var/lib/haproxy
          .......
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *