haproxy вхід у систему


13

Я встановив HAproxy 1.5 з допомогою APT-отримати на Ubuntu 14.04 через ppa:vbernat/haproxy-1.5згідно http://haproxy.debian.net/

Проблема полягає в тому, щоб увійти в систему /var/log/syslogзамість цього/var/log/haproxy.log

В основному налаштування за замовчуванням:

/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
&~

можливо, це посилання допоможе вам: kvz.io/blog/2010/08/11/haproxy-logging
Federico Sierra

Відповіді:


21

Дуже хитро. :-) І ось хитрість відповіді:

Зауважте, що файл у /etc/rsyslog.dньому написано, щоб увійти haproxy в /var/log/haproxy.logАле це не набере чинності без перезавантаження rsyslog:

service rsyslog restart

9

Файл за замовчуванням haproxy.confмістить чіткі інструкції в глобальних налаштуваннях - global. Ось я копію вклеюю її для вас -

# ------------------------------------------------- --------------------
# Глобальні налаштування
# ------------------------------------------------- --------------------
глобальний
    # щоб ці повідомлення потрапили в /var/log/haproxy.log, який ви хочете
    # потребую:
    #
    # 1) налаштувати syslog для прийому подій мережевого журналу. Це робиться
    # додавши опцію '-r' до SYSLOGD_OPTIONS в
    # / etc / sysconfig / syslog
    #
    # 2) налаштуйте local2 події для переходу до /var/log/haproxy.log
    # файл. Рядок на зразок наступного може бути доданий до
    # / etc / sysconfig / syslog
    #
    #

Наприклад, у моєму випадку я запускаю haproxy в CentOS 6.6, тому самому сервері syslogd, і мені потрібно було виконати наступне, щоб увійти до /var/log/haproxy.log:

  1. Додати рядок до /etc/rsyslog.d/haproxy.conf-

    local2. * /var/log/haproxy.log
  2. Увімкнути реєстрацію syslogd на сервері -

# Забезпечує прийом системного журналу UDP
$ ModLoad imudp
$ UDPServerRun 514
$ UDPServerAddress 127.0.0.1

2
В останній частині, на другому кроці (Увімкнути системний журнал на сервері); ви змінюєте ці налаштування у файлі /etc/rsyslog.conf. Після цього перезапустіть службу rsyslog: service rsyslog restart
Edenshaw

6

Прокоментуйте цей рядок із /etc/rsyslog.d

# Send HAProxy messages to a dedicated logfile
if $programname startswith 'haproxy' then /var/log/haproxy.log

1
/etc/rsyslog.dце каталог, а не файл. Я не впевнений у різниці між 1.5 та 1.6 на Ubuntu, але файл /etc/rsyslog.d/49-haproxy.confіснує після встановлення 1.6. У ньому є наступні 3 рядки: $AddUnixListenSocket /var/lib/haproxy/dev/log \n if $programname startswith 'haproxy' then /var/log/haproxy.log \n &~(Я додав "\ n" для позначення нових рядків)
fideloper

3

головна проблема полягає в тому, що захищений гапрокси не зможе отримати доступ, /dev/logа щоб обійти проблему, ви можете:

  • Увімкніть syslog для прослуховування в сокет UDP (як правило, на порт 514), як описано в інших повідомленнях
  • Створіть каталог /var/lib/haproxy/devі змонтуйте /devз опцією прив'язки до/var/lib/haproxy/dev

Це працює в будь-який спосіб.

[редагувати]

Через 3 роки щось змінилося. Тепер Haproxy створює файл під назвою /etc/rsyslog.d/49-haproxy. Один з рядків у файлі:

$AddUnixListenSocket /var/lib/haproxy/dev/log.

У цьому випадку може використовуватись середовище chroot /dev/log


ви також можете просто додати розетку журналу в chroot. rsyslog може мати кілька. (я б наводив приклад, але минули роки)
Флоріан Хейгл

Це більше не стосується новіших версій HAProxy, я працюю у версії 1.5.4 з хронованою конфігурацією, але вхід у систему /dev/log.
Overbryd

@Overbryd так і ні. Новіша haproxy додає файл у /etc/rsyslog.d, наступне твердження всередині: $ AddUnixListenSocket / var / lib / haproxy / dev / log Я відповідно відредагую свій коментар.
maxadamo
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.