Чи підтримує HAProxy журнал у файл?


14

Я щойно встановив haproxy на своєму тестовому сервері.

Чи є спосіб змусити його записувати свої журнали в локальний файл, а не в syslog?

Це лише для тестування, тому я не хочу починати відкривати порти / захаращувати syslog усіма своїми тестовими даними.

На жаль, єдина інформація, яку я можу знайти, обертається навколо входу на сервер syslog.

Я спробував використовувати:

log /home/user/ha.log local0

в моїй конфігурації. Але це мені сказало:

[ALERT] 039/095022 (9528) : sendto logger #1 failed: No such file or directory (errno=2)

Коли я перезапустив. Тож я створив файл touch /home/user/ha.logі перезапустив, коли отримав:

[ALERT] 039/095055 (9593) : sendto logger #1 failed: Connection refused (errno=111)

Чи можливо це, чи мені доведеться налаштувати syslog тощо, щоб побачити свої тестові дані?


2
Я не думаю, що HAProxy може ввійти у файл, і я підозрюю, що причина цього в тому, що запис на диск - це операція блокування. Чому ви дійсно не хочете використовувати syslog? Налаштування не все так складно. Ви можете призначити локальний об'єкт HAProxy і налаштувати демон-syslog для запису цих записів в інший файл, а не в інші файли syslog (або мережеві потоки), якщо ви не хочете, щоб журнали HAProxy не змішувалися з усім ще.
Майкл - sqlbot

Відповіді:


14

Haproxy просто не підтримує реєстрацію файлів. Як зазначено в документації ( https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#3.1-log ), оператор "log" бере в якості першого параметра адресу. Якщо це файл, це unix-сокет, і HAProxy буде говорити у форматі syslog для цього сокета. Haproxy розроблений так, тому що його відповідальність полягає в проксі-запитах, а не в записі файлів, але делегує написання файлів журналів у syslog. Якщо ви не хочете возитися зі своєю машиною, ви можете, наприклад, встановити logstash та запустити: logstash -e 'input { unix { path => "/tmp/haprxoy_log.sock" } } output { stdout { } }' та додати: log /tmp/haprxoy_log.sock У свій haproxy.cfg перевірити його.


Я отримую "E: Неможливо знайти лог-пакет пакета". Чи було видалено logstash з ubuntu?
користувач568021

@ user568021 здається, що logstash не передбачений в ubuntu, але еластичний (сервіс logstash) забезпечує влучне джерело. Крім того, logstash - це програмне забезпечення java, тому ви можете запустити його, завантаживши jar-файл, запускаючи його JRE (який надає ubuntu)
user801247

7

Ви можете змінити конфігураційний файл журналу haproxy, /etc/rsyslog.d/щоб вказати файл на потрібний вам шлях. Не впевнений в іншому розповсюдженні. Для мене я використовую Debian. Я змінив, /etc/rsyslog.d/49-haproxy.confщоб вказати /var/log/haproxy/haproxy.log,

# 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/haproxy.log
&~

Ви також повинні оновити шлях журналу /etc/logrotate.d/haproxyдо нового шляху. Так що він буде обертати та стискати журнал файлів у щойно налаштованому шляху за допомогою gzip.

Потім перезапустіть rsyslog.service.

sudo systemctl restart rsyslog.service

Тепер haproxy.log.*файл буде в /var/log/haproxy/каталозі.


Як створити окремий журнал для помилок, таких як /var/log/haproxy-errors.log, не впливаючи на вихідний haproxy.log?
Хуршид Алам

0

Ви спробували налаштувати в домашньому каталозі користувача, haproxy не має дозволу на доступ до домашнього каталогу користувача, тому це спричинить проблему.

Замість цього спробуйте в іншому місці, створіть каталог у /var/<directory>

log /var/<directory>/ha.log

2
Я спробував sudo touch /var/log/ha.logі додав log /var/log/ha.log local0у свій конфігурацію, але отримав таку ж помилку, як і вище connection refused.
IGGt

Увійти до журналу, чому ви надаєте local0 врешті-решт?
KKD

1
Я спробував це відключити, але коли я перезапустив, я отримав помилку, 'log' expects <address> and <facility> as arguments.щоб щось там вимагало. Згідно з інструкціями <facility> must be one of the 24 standard syslog facilities(які, на мою думку, можуть бути частиною проблеми)
IGGt
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.