systemd에서 varnishncsa 로그를 별도의 로그로 분할하는 방법(Ubuntu 16.04)

systemd에서 varnishncsa 로그를 별도의 로그로 분할하는 방법(Ubuntu 16.04)

varnishncsa가상 호스트에 따라 로그를 별도의 파일로 분할 해야 합니다 .

특정 가상 호스트를 필터링하기 위해 재정의 구성을 만들 수 있다는 것을 알고 있습니다 /etc/systemd/system/varnishncsa.service.d.

Somedomain.conf는 다음과 같습니다.

[Service]
RuntimeDirectory=varnishncsa
Type=forking
User=varnishlog
Group=varnish
ExecStart=
ExecStart=/usr/bin/varnishncsa -q "ReqHeader ~ '^Host: somedomain.com'" -D -a -w /var/log/varnish/somedomain.log -P /run/varnishncsa/varnishncsa.pid -F '%%{X-Forwarded-For}i %%l %%u %%t "%%r" %%s %%b "%%{Referer}i" "%%{User-agent}i"'
ExecReload=/bin/kill -HUP $MAINPID
PrivateDevices=true
PrivateNetwork=true
PrivateTmp=true
ProtectHome=true
ProtectSystem=full
PIDFile=/run/varnishncsa/varnishncsa.pid

하지만 각 가상 호스트에 대해 별도의 로그 파일을 생성하려면 어떻게 해야 합니까?

도메인별 로그를 awstats에 입력하고 싶습니다.

답변1

내가 본 방법에는 두 가지 옵션이 있습니다. 1은 모든 것을 파일에 기록한 다음 varnishlog를 사용하여 로그를 구문 분석하여 관심 있는 가상 호스트만 확인하는 것입니다. 이 도구에 대한 자세한 내용은 여기에서 확인할 수 있습니다.https://varnish-cache.org/docs/trunk/reference/varnishlog.html.

로그를 명시적 파일로 분할하려면 여러 데몬을 실행해야 합니다 varnishncsa. 이 방법은 다음 블로그에 나와 있습니다.가상 호스트의 Varnish 로그를 분할하는 방법.

예를 들어:

바니시 3.x
varnishncsa -m "RxHeader:^Host: linuxaria.com$" -a -w /var/log/varnish/linuxaria.com.access_log -D
varnishncsa -m "RxHeader:^Host: linuxaria.org$" -a -w /var/log/varnish/linuxaria.org.access_log -D
바니시 4.x
varnishncsa -q "ReqHeader ~ '^Host: .*\.example1.com'"
varnishncsa -q "ReqHeader ~ '^Host: .*\.example2.com'"

이를 가상 호스트당 하나씩 개인화된 시스템 단위 파일로 설정해야 합니다.노트:이 방법은 다음 블로그 게시물에서도 설명됩니다.[팁]varnishncsa는 각 호스트에 대한 분할 로그를 저장합니다..

당신의 모범

따라서 각 단위 파일(가상 호스트당 1개)에 대해 다음과 같이 exec 줄을 추가합니다.

유닛 파일 #1
ExecStart=/usr/bin/varnishncsa -q "ReqHeader ~ '^Host: somedomain1.com'" -D -a -w /var/log/varnish/somedomain1.log -P /run/varnishncsa/varnishncsa_vhost1.pid -F '%%{X-Forwarded-For}i %%l %%u %%t "%%r" %%s %%b "%%{Referer}i" "%%{User-agent}i"'
유닛 파일 #2
ExecStart=/usr/bin/varnishncsa -q "ReqHeader ~ '^Host: somedomain2.com'" -D -a -w /var/log/varnish/somedomain2.log -P /run/varnishncsa/varnishncsa_vhost2.pid -F '%%{X-Forwarded-For}i %%l %%u %%t "%%r" %%s %%b "%%{Referer}i" "%%{User-agent}i"'

관련 정보