최초 작성일 : 2021-10-10 | 수정일 : 2021-10-15 | 조회수 : 504 |
Apache는 log_config_module을 사용하여 클라이언트의 요청을 원하는 형식으로 로그에 기록할 수 있습니다
아래 설정은 Apache 기본 로그 설정입니다. 한줄씩 의미를 확인해 보겠습니다.
#1
#2 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
#3 LogFormat "%h %l %u %t \"%r\" %>s %b" common
#4
#5 CustomLog "logs/access_log" combined
#6
#1 #6 : IfModule 지서어는 서버에 log_config_module이 설치되어 있을 때만 섹션 안의 지시어들을 적용한다.
[root@linux-2 conf]# httpd -D DUMP_MODULES | grep log_config_module
log_config_module (shared)
#2 #3 : LogFormat 지시어는 말 그대로 로그의 형식을 지정합니다. 어떤 형식으로 지정할지는 아래 표의 문자열을 참고하시면 됩니다. 끝에 combined는 정의한 LogFormat의 이름 입니다
형식 문자열 | 의미(설명) |
%h | 원격 호스트 |
%l | 원격 로그인명 |
%u | 원격 사용자 |
%t | 시간 |
%r | 요청의 첫번째 줄 |
%s | 상태 |
%b | HTTP 헤더를 제외한 전송 바이트수 |
%{헤더}i | 클라이언트 요청의 헤더 값 |
(추가 문자열에 대해서는 Apaceh 공식페이지에서 확인 하시면 됩니다)
https://httpd.apache.org/docs/2.4/ko/mod/mod_log_config.html#logformat
#5 : CustomLog 지시어로 로그 파일(이름 및 위치)과 형식을 지정합니다.
그럼, 실제 서버에서 로그를 확인해 보겠습니다.
192.168.56.1 - - [30/May/2020:23:50:48 +0900] "GET / HTTP/1.1" 200 14 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36"
형식 문자열 | 값 |
%h | 192.168.56.1 |
%l | -(값없음) |
%u | -(값없음) |
%t | [30/May/2020:23:50:48 +0900] |
%r | GET / HTTP/1.1 |
%s | 200 |
%b | 14 |
%{referer}i | -(값없음) |
%{User-Agent}i | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36 |