Como posso fazer com que o haproxy faça logon no systemd/journald?

Como posso fazer com que o haproxy faça logon no systemd/journald?

Tenho um sistema Linux da geração atual que gostaria de usar com o haproxy. O Journald registrará alegremente stdout from .servicee marcará o log como proveniente desse serviço, mashaproxy não parece conseguir fazer logon no stdout.

Qual é a maneira mais simples e limpa de fazer com que o haproxy faça logon no systemd/journald?

Editar: a configuração atual é o padrão:

global
    log         127.0.0.1 local2

Mas não há nenhuma local2facilidade, pois não há syslog na caixa local.

Responder1

Systemd tem um soquete de domínio Unix no qual você pode fazer logon:

global
        log /dev/log local0 info

Então, systemctl restart haproxypara que as alterações tenham efeito.

Responder2

Esta resposta vale para aqueles que estão lutando. haproxy_global.cfg =>

global
    log                 127.0.0.1:514 local0

defaults
    mode                    http
    log                     global
    log-format              "%ci:%cp [%tr] %ft %b/%s %TR/%Tw/%Tc/%Tr/%Ta %ST %B %CC %CS %tsc %ac/%fc/%bc/%sc/%rc %sq/%bq %hr %hs %{+Q}r"

/etc/rsyslog.d/haproxy.conf =>

    # Collect log with UDP
    $ModLoad imudp
    $UDPServerAddress 127.0.0.1
    $UDPServerRun 514

    $AddUnixListenSocket /var/lib/haproxy/dev/log
    # Send HAProxy messages to a dedicated logfile
    :programname, startswith, "haproxy" {
      /var/log/haproxy/haproxy.log
      stop
    }

/etc/logrotate.d/haproxy =>

  /var/log/haproxy/haproxy.log {
      missingok
      notifempty
      sharedscripts
      rotate 14
      daily
      compress
      postrotate
          reload rsyslog >/dev/null 2>&1 || true
      endscript
  }

informação relacionada