сделать HAPROXY в локальном файле вместо syslog?

Я только что установил 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 и т. д., чтобы увидеть мои тестовые данные?

10 голосов | спросил IGGt 9 FebruaryEurope/MoscowbTue, 09 Feb 2016 13:07:45 +0300000000pmTue, 09 Feb 2016 13:07:45 +030016 2016, 13:07:45

3 ответа


9

Haproxy просто не поддерживает протоколирование файлов. Как указано в документации ( https://cbonte.github.io /haproxy-dconv/1.8/configuration.html#3-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 проверьте его.

ответил user801247 17 FebruaryEurope/MoscowbFri, 17 Feb 2017 14:16:41 +0300000000pmFri, 17 Feb 2017 14:16:41 +030017 2017, 14:16:41
5

Вы можете изменить конфигурационный файл протокола 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/.

ответил Fonzie 5 TueEurope/Moscow2017-12-05T12:09:56+03:00Europe/Moscow12bEurope/MoscowTue, 05 Dec 2017 12:09:56 +0300 2017, 12:09:56
0

Вы пытались настроить в домашнем каталоге пользователя, у haproxy нет разрешения на доступ к домашнему каталогу пользователя, поэтому это вызывает проблемы.

Вместо этого попробуйте в другом месте, создайте каталог в /var/<directory>

log /var/<directory>/ha.log
ответил KKD 9 FebruaryEurope/MoscowbTue, 09 Feb 2016 13:22:07 +0300000000pmTue, 09 Feb 2016 13:22:07 +030016 2016, 13:22:07

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132