나는 통해 우분투 14.04에 apt-get을 통해 haproxy 1.5 설치 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
&~
답변
매우 까다 롭습니다. 🙂 그리고 여기 속임수가 있습니다 :
파일에 /etc/rsyslog.d
haproxy를 로그인하라는 메시지가 표시 되지만 /var/log/haproxy.log
rsyslog를 다시 시작하지 않으면 적용되지 않습니다.
service rsyslog restart
답변
기본 haproxy.conf
파일은 전역 설정-아래에 명확한 지침을 제공합니다 global
. 여기 내가 당신을 위해 붙여 넣습니다-
# ------------------------------------------------- -------------------- # 글로벌 설정 # ------------------------------------------------- -------------------- 글로벌 #이 메시지가 /var/log/haproxy.log에있게하려면 # 필요하다: # # 1) 네트워크 로그 이벤트를 승인하도록 syslog를 구성하십시오. 이건 끝났어 # '-r'옵션을 SYSLOGD_OPTIONS에 추가하여 # / etc / sysconfig / syslog # # 2) local2 이벤트를 구성하여 /var/log/haproxy.log로 이동하십시오. # 파일. 다음과 같은 줄을 추가 할 수 있습니다 # / etc / sysconfig / syslog # #
필자의 경우 예를 들어 동일한 syslogd 서버 인 CentOS 6.6에서 haproxy를 실행 중이며 /var/log/haproxy.log에 로그하려면 다음을 수행해야합니다.
-
아래 행을 추가
/etc/rsyslog.d/haproxy.conf
–local2. * /var/log/haproxy.log
-
서버에서 syslogd 로깅 사용-
# UDP syslog 수신 기능 제공 $ ModLoad imudp $ UDPServerRun 514 $ UDPServerAddress 127.0.0.1
답변
이 줄을 주석으로 처리하십시오. /etc/rsyslog.d
# Send HAProxy messages to a dedicated logfile
if $programname startswith 'haproxy' then /var/log/haproxy.log
답변
주요 문제는 chroot 된 haproxy가 액세스 할 수없고 /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