Apache2 로그 관리 (Apache2 Log Management)
로그 파일 개요 (Overview of Log Files)
Apache HTTP Server는 두 가지 주요 로그 파일을 사용합니다:
- 접근 로그 (Access Log): 클라이언트 요청에 대한 모든 정보를 기록합니다.
- 에러 로그 (Error Log): 서버 작동 중 발생하는 모든 에러와 진단 정보를 기록합니다.
접근 로그와 에러 로그 (Access Logs and Error Logs)
접근 로그 (Access Log)
- 파일 경로: 기본적으로
/var/log/apache2/access.log
에 저장됩니다. - 기록 내용: 클라이언트의 요청, IP 주소, 요청된 URL, HTTP 응답 코드, 브라우저 정보 등.
예시:
127.0.0.1 - - [10/Aug/2024:13:55:36 +0000] "GET /index.html HTTP/1.1" 200 2326
에러 로그 (Error Log)
- 파일 경로: 기본적으로
/var/log/apache2/error.log
에 저장됩니다. - 기록 내용: 서버 작동 중 발생하는 에러, 경고 및 진단 정보.
예시:
[Wed Aug 10 13:55:36.123456 2024] [core:error] [pid 12345] [client 127.0.0.1:54321] File does not exist: /var/www/html/favicon.ico
로그 분석 (Log Analysis)
로그 파일은 웹 서버의 성능, 보안, 사용자 행동 등을 분석하는 데 중요한 자료입니다.
로그 포맷 설정 (Log Format Configuration)
Apache는 로그 포맷을 사용자 정의할 수 있도록 LogFormat
디렉티브를 제공합니다.
기본 로그 포맷
LogFormat "%h %l %u %t \"%r\" %>s %b" common CustomLog /var/log/apache2/access.log common
- %h: 클라이언트 IP 주소
- %l: RFC 1413 아이덴티티 (대부분
-
로 기록) - %u: 인증된 사용자 (대부분
-
로 기록) - %t: 요청 시간
- %r: 요청 라인 (예: “GET /index.html HTTP/1.1”)
- %>s: 최종 HTTP 상태 코드
- %b: 전송된 바이트 수 (헤더 제외)
사용자 정의 로그 포맷
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined CustomLog /var/log/apache2/access.log combined
- %{Referer}i: 요청에 대한 리퍼러
- %{User-Agent}i: 클라이언트의 User-Agent
로그 분석 도구 사용 (Using Log Analysis Tools)
AWStats
AWStats는 Apache 로그 파일을 분석하여 웹 트래픽 보고서를 생성하는 강력한 도구입니다.
- 설치:
sudo apt-get install awstats
- 설정 파일 편집:
기본 설정 파일을 복사하고 수정합니다.sudo cp /etc/awstats/awstats.conf /etc/awstats/awstats.example.com.conf sudo nano /etc/awstats/awstats.example.com.conf
설정 파일에서LogFile
,SiteDomain
,HostAliases
등을 설정합니다. - 데이터 업데이트:
sudo /usr/lib/cgi-bin/awstats.pl -config=example.com -update
- 웹 인터페이스 액세스:
Apache 설정 파일에 AWStats를 추가합니다.Alias /awstatsclasses "/usr/share/awstats/lib/" Alias /awstats-icon "/usr/share/awstats/icon/" Alias /awstatscss "/usr/share/doc/awstats/examples/css" ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ ScriptAlias /awstats/ /usr/lib/cgi-bin/awstats.pl/
- 브라우저에서 접근:
http://example.com/cgi-bin/awstats.pl?config=example.com
GoAccess
GoAccess는 실시간 로그 분석 도구로, 터미널에서 로그 파일을 실시간으로 분석할 수 있습니다.
- 설치:
sudo apt-get install goaccess
- 로그 분석:
goaccess /var/log/apache2/access.log -o /var/www/html/report.html --log-format=COMBINED
- 실시간 보고서:
goaccess /var/log/apache2/access.log -o /var/www/html/report.html --log-format=COMBINED --real-time-html
- 브라우저에서 접근:
http://example.com/report.html
요약 (Summary)
Apache 로그 관리와 분석을 통해 서버의 상태를 모니터링하고, 성능 및 보안을 개선할 수 있습니다. LogFormat
과 CustomLog
설정을 통해 로그 포맷을 사용자 정의하고, AWStats와 GoAccess와 같은 도구를 사용하여 로그 파일을 효과적으로 분석할 수 있습니다. 이를 통해 웹 서버의 트래픽 패턴을 이해하고, 필요한 조치를 취하여 최적의 성능과 보안을 유지할 수 있습니다.