본문 바로가기
리눅스

apache access 로그 syslog로 보내기

by 혜룐 2015. 12. 3.



여러대의 web 서버를 운영할경우
syslog의 remote syslog 로 관리 하는 것도 하나의 운영방법이 될수 있다.
applicaton 로그를 중앙으로 수집하는 여러방법이 있지만, 그중에 syslog로 한번 설정 해보자. 
(전에는 syslog-ng 라는 데몬을 이용해서, 로그관리 중앙서버로 수집한 경우가 있다. 근데.. fluentd,logstash등 오픈소스가 많아서.. 굳이..)

1) apache access 로그에 설정을 추가하기 
# 아래라인을 추가한다.
CustomLog "|/usr/bin/logger -p local1.notice -t apache" combined
# 기존에 있던 로그설정은 그대로 둔다.
CustomLog "|/webserver/program/apache/bin/rotatelogs -l /webserver/program/apache/logs/%y%m%d.dms2-web.activity_log 86400" combined env=!nolog
ErrorLog "|/webserver/program/apache/bin/rotatelogs -l /webserver/program/apache/logs/%y%m%d.dms2-web.error_log 86400"
2) apache 데몬을 graceful로 재시작
restart를 하거나 stop ->start도 해도 되지만, 운영중인서버에서 변경했기 때문에 graceful을 사용한다.
httpd.apache.org/docs/2.2/ko/stopping.html
3) 기존 access 로그 와 /var/log/message에 apache 로그가 쌓이는걸 확인 할 수 있다.
[root@test-server-was ~]# tail -f /var/log/messages
Jul 28 11:20:44 test-server-was apache: 10.27.11.42 5442 - [28/Jul/2014:11:20:44 +0900] "GET /en/pnel/today.json HTTP/1.1" 200 431 "-" "Java/1.6.0_45" 0
Jul 28 11:20:45 test-server-was apache: 10.27.11.37 5164 - [28/Jul/2014:11:20:45 +0900] "GET /en/pnel/todayContestct HTTP/1.1" 200 882 "-" "Java/1.6.0_45" 0
4) /etc/syslog,conf 파일을 수정한다.
local.1* @10.2.3.4 (로그중앙서버 아이피)
데몬을 재시작
참고 사이트
http://www.oreillynet.com/pub/a/sysadmin/2006/10/12/httpd-syslog.html
http://blog.papertrailapp.com/send-apache-access-logs-to-remote-syslog-in-1-line/