Как заставить haproxy регистрировать данные в systemd/journald?

Как заставить haproxy регистрировать данные в systemd/journald?

У меня есть система Linux текущего поколения, которую я хотел бы использовать с haproxy. Journald с радостью будет вести журнал stdout из .serviceи отметит журнал как исходящий от этой службы, ноhaproxy, похоже, не может выводить данные на stdout.

Какой самый простой и понятный способ заставить haproxy вести журнал в systemd/journald?

Редактировать: текущая конфигурация — это конфигурация по умолчанию:

global
    log         127.0.0.1 local2

Но такой возможности нет, local2поскольку на локальном компьютере нет системного журнала.

решение1

Systemd имеет сокет домена Unix, в который вы можете войти:

global
        log /dev/log local0 info

Затем systemctl restart haproxyнеобходимо сделать так, чтобы изменения вступили в силу.

решение2

Этот ответ для тех, кто испытывает трудности. 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
  }

Связанный контент