SW/WEB WAS

[Apache] 아파치 로그(Access log, Error log) 살펴보기

yeit 2024. 9. 13. 13:41
728x90

 

 

 

 

Apache의 로그는 주로 두 가지 종류의 로그를 생성한다.

 

1. Access Log

  • 클라이언트의 요청과 서버의 응답에 대한 정보를 기록
  • 로그 형식은 2가지가 있다.

1-1. common 로그 형식

아파치는 기본적으로 CLF(Common Log Format) 형식을 따른다.

 "%h %l %u %t \"%r\" %>s %b"
  • %h : hostname 또는 IP 주소
  • %l : 클라이언트 식별자
  • %u : 인증된 사용자 이름
  • %t : 요청이 수신된 시간
  • %r : 클라이언트가 요청한 요청 라인 (ex. GET /index.html HTTP/1.1)
  • %>s : 서버가 클라이언트에게 응답한 상태 코드
  • %b : 응답 본문 크기 (byte단위)

 

1-2. combined 로그 형식

combined 형식은 common 형식에서 두 가지 정보를 추가로 포함한다.

 "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
  • Referer : 현재 요청이 발생하기 전에 클라이언트가 방문했던 페이지의 URL
  • User-agent : 클라이언트의 웹 브라우저와 운영 체제에 대한 정보
  • httpd.conf 파일에서 CustomLog 지시어를 사용하여 Combined Log Format 형식으로도 설정이 가능하다.
CustomLog logs/access_log combined

 

 

참고

프록시 서버를 통해 들어오는 경우에는 서버에서 요청을 받는 측에서는 클라이언트의 실제 IP 주소를 알기 어려움이 있다. 이런 경우 %h가 아닌 %a를 사용하는 것이 좋다. (%h는 클라이언트의 IP 주소를 나타내지만 이는 프록시 서버의 IP 주소일 수도 있다.) %a는 프록시를 통해 전달된 경우에도 클라이언트의 실제 IP 주소를 기록해 준다.

 

 

 

2. Error Log

  • 서버에서 발생하는 에러와 문제를 기록
  • httpd.conf 파일에서 로그 레벨을 설정하여 상세한 로그가 출력되도록 할 수 있다.
 LogLevel Debug

 

로그 레벨

  • emerg : 긴급 상황으로 서버가 중단될 수 있는 심각한 오류
  • alert : 즉시 처리해야 하는 문제
  • crit : 심각한 문제, 즉시 해결해야하는 상태
  • error : 오류가 발생했으며 처리가 필요함
  • warn : 경고, 즉시 문제가 되지는 않지만 주의가 필요한 상태
  • notice : 정상적인 동작이지만 주의가 필요한 상황
  • info : 일반적인 정보를 기록
  • debug : 매우 상세한 디버깅 정보를 기록
  • Apache 2.4부터는 ErrorLogFomart을 설정하여 원하는 형식으로 에러 로그를 출력할 수 있다.
ErrorLogFormat "[%t] %h %l %u %r %s %b %m"

 

 

 

 

 

728x90