Wie kann ich haproxy dazu bringen, sich bei systemd/journald anzumelden?

Wie kann ich haproxy dazu bringen, sich bei systemd/journald anzumelden?

Ich habe ein Linux-System der aktuellen Generation, das ich gerne mit haproxy verwenden möchte. Journald loggt stdout gerne von .serviceund markiert das Protokoll als von diesem Dienst stammend, aberhaproxy scheint nicht in der Lage zu sein, sich bei stdout anzumelden.

Was ist der einfachste und sauberste Weg, um haproxy dazu zu bringen, sich bei systemd/journald anzumelden?

Bearbeiten: die aktuelle Konfiguration ist die Standardeinstellung:

global
    log         127.0.0.1 local2

Es gibt jedoch keine local2Möglichkeit, da auf der lokalen Box kein Syslog vorhanden ist.

Antwort1

Systemd verfügt über einen Unix-Domain-Socket, bei dem Sie sich anmelden können:

global
        log /dev/log local0 info

Dann systemctl restart haproxywerden die Änderungen wirksam.

Antwort2

Diese Antwort gilt für diejenigen, die Schwierigkeiten haben. 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
  }

verwandte Informationen