이 기사 의 팁을 사용하여 rsyslogd를 통해 haproxy 로깅을 설정했는데 모든 것이 잘 작동하는 것 같습니다. 로그 파일은 로그 메시지를받습니다.
그러나 haproxy의 모든 로그 메시지도에 표시됩니다 /var/log/syslog
. 즉, 서버가 활성화되면 syslog는 haproxy 로그 메시지로 실행되므로 매우 쓸모가 없습니다.
에서 해당 메일을 필터링하고 싶습니다 /var/log/syslog
. rsyslogd 설명서를 검토 한 후 파일 /etc/rsyslog.d/50-default.conf
을 다음과 같이 변경하려고했습니다 .
*.*;auth,authpriv.none;haproxy.none -/var/log/syslog
나는 단순히 그 ;haproxy.none
부분을 추가했다 . rsyslogd를 다시 시작한 후 변경 사항을 되돌릴 때까지 완전히 작동하지 않았습니다.
내가 무엇을 잘못하고 있지?
답변
다른 로그에 가지 않도록 다음을 수행 할 수도 있습니다.
local0.* -/var/log/haproxy.log
& ~
& ~
수단이없는 규칙의 나머지 부분에 대한 다른 곳에서는 위의 라인에 일치하는 것을 넣어.
답변
& ~
rsyslogd v7에서는 사용 이 더 이상 사용되지 않으며 & stop
대신 사용하는 것이 좋습니다. 자세한 내용은 v7compatibility 페이지 의이 섹션에서 확인할 수 있습니다 .
omruleset 및 폐기 (~) 조치는 더 이상 사용되지 않습니다.
둘 다 계속 작동하지만 더 나은 대안으로 대체되었습니다.
삭제 작업 (물결 문자)이 “중지”RainerScript 지시문으로 대체되었습니다. 보다 직관적으로 간주되며 약간 더 나은 성능을 제공합니다.
omruleset 모듈은“call”RainerScript 지시문으로 대체되었습니다. 호출은 서브 루틴과 같은 규칙 세트를 실행할 수있게하며 omruleset보다 훨씬 높은 성능으로 수행합니다. omruleset은 비동기 큐에서 실행될 수 있습니다. 이것은 원하는 효과보다 더 많은 측면이었으며 call 문에서 지원하지 않습니다. 해당 효과가 필요한 경우 호출 된 규칙 세트 조치를 비동기 적으로 실행하여 간단하게 시뮬레이션 할 수 있습니다 (어쨌든이를 처리하는 올바른 방법).
더 이상 사용되지 않는 모듈은 사용될 때 경고 메시지를 표시합니다. 그들은 구문이 더 이상 사용되지 않으며 대체로 사용될 명령문을 알려줍니다. 이는 운영에 영향을 미치지 않습니다. 두 모듈 모두 여전히 완벽하게 작동하며 v7 시간대에서 제거되지 않습니다.
따라서 HAProxy의 경우 다음과 같이 대신하십시오.
$ more /etc/rsyslog.d/haproxy.conf
local2.* /var/log/haproxy.log
& stop
작동 방식에 & stop
대해 rsyslogd는 이전에 일치 한 규칙과 일치하는 추가 메시지를이 시점까지 버립니다. 보장이 규칙이 초기에 포착되어, 당신은에서 파일의 이름을 변경할 수 있습니다 /etc/rsyslog.d/haproxy.conf
로 /etc/rsyslog.d/00-haproxy.conf
.
답변
알았어 이것은 내 /etc/rsyslog.d/20-haproxy.conf
모습입니다 :
$ModLoad imudp
$UDPServerRun 514
local0.* -/var/log/haproxy_0.log
local1.* -/var/log/haproxy_1.log
줄을 다음 50-default.conf
과 같이 변경 했습니다.
*.*;auth,authpriv,local0,local1.none -/var/log/syslog
그리고 지금은 내가 원하는 것을하고있는 것 같습니다.
답변
haproxy 로깅을위한 더 나은 솔루션이 있습니다.
- HAproxy는 chroot에서 실행되므로 액세스 할 수 없습니다
/dev/log
-
공식 매뉴얼에 따르면 네트워크 소켓을 수신하도록 rsyslog를 구성해야합니다.
# to have these messages end up in /var/log/haproxy.log you will # need to: # # 1) configure syslog to accept network log events. This is done # by adding the '-r' option to the SYSLOGD_OPTIONS in # /etc/sysconfig/syslog # # 2) configure local2 events to go to the /var/log/haproxy.log # file. A line like the following can be added to # /etc/sysconfig/syslog
그러나 rsyslog 소켓 만 사용할 수 있습니다.
rsyslog.d / haproxy.conf :
# HAproxy local socket
$AddUnixListenSocket /var/lib/haproxy/dev/log
:programname, contains, "haproxy" /var/log/haproxy.log
& stop
haproxy.cfg :
global
log /dev/log daemon
chroot /var/lib/haproxy
.......
답변
파일의 순서를 엉망으로 만들지 않기 때문에 대신 local0.none을 추가하십시오 . 줄 항목. 구성은 다음과 같습니다.
*.info;mail.none;authpriv.none;cron.none;local2.none /var/log/messages
local2.* /var/log/haproxy.log
(CentOS 7에서 테스트)
희망이 도움이됩니다!