본문 바로가기

main/Server

[CentOS 7] Apache 서버 로그 관리 - httpd.conf

httpd.conf 에서 로그를 관리하는 명령

  ErrorLog logs/error_log
  LogLevel debug
  
  CustomLog logs/access_log combined

error_log : 아파치 서버의 에러 정보 기록

에러 로그의 포맷에는 시간/위험도/IP주소/메시지 정보가 포함된다.

 

LogLevel : error_log가 기록될 위험도 수준을 정해줄수있다.

  • emerg 서버를 사용할 수 없게 만든 긴급 상황 표시
  • alert 즉시 해결해야 하는 오류 표시
  • crit 임계 조건을 보여줌
  • error 오류 조건을 표시
  • warn 일반적으로 오류가 아니지만 해결해야 하는 경고 조건 표시
  • notice 일반적인 알림
  • info 정보 메시지 표시
  • debug 디버그 수준 메시지 표시

access_log : 아파치 서버가 처리하는 모든 요청에 대한 정보 기록

CustomLog 명령어 맨 뒤의 지시자를 통해 로그 포맷이 지정된다.

 

<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common

LogFormat을 통해 다양한 로그 포맷을 만들어 놓고, CustomLog에서 사용할 수 있다.

  • %h 원격 호스트 이름
  • %l 클라이언트 식별자 : 아파치 공식문서에 따르면 이 정보는 매우 믿을 수 없다고 하는데... ? 일단 받아본다.
  • %u 인증 사용자명
  • %t 시간
  • \"%r\" 요청의 첫 번째 행의 값 (e.g. "GET / HTTP/1.1")
  • %>s 마지막 응답의 상태 (e.g. 200, 304, 404, ...)
  • %b 전송된 바이트 수 (헤더제외) : %B 내용이 없을 경우 "0"을 로그해줌
  • %{환경변수명} 환경변수명의 값
  • %{헤더}i 요청에 포함된 헤더명의 값