我正在尝试让 HAProxy 将自定义日志发送到 rsyslog。发送日志本身工作正常,但我没有收到我需要的日志。
这是我的 haproxy.cfg
global
log 127.0.0.1:9001 len 8192 local0
log /var/lib/haproxy/dev/log len 8192 local0
log /var/lib/haproxy/dev/log len 8192 local1 notice
user root
group root
daemon
stats socket /var/run/haproxy.stat mode 666
stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
stats socket /var/lib/haproxy/stats level admin
tune.bufsize 32768
tune.maxrewrite 1024
stats timeout 30s
chroot /var/lib/haproxy
maxconn 8192
tune.ssl.default-dh-param 4096
defaults
# Default ciphers to use on SSL-enabled listening sockets. For
# more information, see ciphers(1SSL).
log global
mode http
option httplog
option log-separate-errors
option dontlognull
retries 2
option redispatch
maxconn 8000
timeout http-request 10s
timeout http-keep-alive 60s
frontend no_ssl
bind :::80 v4v6
redirect prefix http://www.mysite/ code 301 if { hdr(host) -i mysite }
redirect scheme https if !{ ssl_fc }
frontend cluster_ssl
bind :::443 v4v6 ssl crt /etc/ssl/private/ssl.pem alpn h2,http/1.10/ssl.pem
bind *:8404
option http-use-htx
http-request use-service prometheus-exporter if { path /metrics }
stats enable
stats uri /stats
stats refresh 10s
option forwardfor
option http-server-close
option httplog
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 {%sslc|%sslv} %{+Q}r"
capture request header Host len 100
capture request header User-Agent len 250
capture request header Referer len 100
capture response header Content-length len 9
capture response header Location len 100
#
# HSTS Header - more information:
# https://www.owasp.org/index.php/HTTP_Strict_Transport_Security
#
http-response add-header Strict-Transport-Security max-age=31536000;\
includeSubDomains;\ preload
这里是 /etc/rsyslog.d/49-haproxy.conf
# 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
:programname, startswith, "haproxy" {
@@127.0.0.1:9001
/var/log/haproxy.log
stop
}
所以我需要将日志格式部分写入/var/log/haproxy.log 我错过了什么?这甚至可能吗?我是 haproxy 的新手,负责将这些日志发送到 loki,但不知道为什么它不会将自定义日志发送到 rsyslog。 如果有人知道将这些日志直接发送到 loki (promtail) 的方法,那也太棒了 :-)
谢谢