AccessLog Format 및 설정 방법

linux

목록 보기
1/5

AccessLog Format 및 설정 방법


AccessLog란 뭐야?

AccessLog는 웹 서버가 "누가", "언제", "어떤 요청"을 했는지 기록해 놓은 일기장이야.

웹사이트에 사람들이 들어오면 그 기록을 남기는데, 이걸 보면 "아, 이런 사람이 우리 웹사이트를 썼구나!"라고 알 수 있어.


1. AccessLog가 기록하는 내용

AccessLog는 이런 정보를 기록해:

  • 누가 들어왔는지 (IP 주소)
  • 언제 들어왔는지 (날짜와 시간)
  • 뭘 요청했는지 (예: "메인 페이지 보여줘!")
  • 결과가 어땠는지 (성공/실패 코드)
  • 얼마나 많은 데이터를 보냈는지 (파일 크기)

예시:

127.0.0.1 - - [10/Dec/2024:12:34:56 +0900] "GET /index.html HTTP/1.1" 200 1024
  • 127.0.0.1: 접속한 컴퓨터(IP 주소)
  • 10/Dec/2024:12:34:56: 접속 시간
  • "GET /index.html HTTP/1.1": 요청한 내용
    • GET: "파일을 보여줘!"라는 명령
    • /index.html: "홈페이지 파일을 보여줘!"
  • 200: "요청 성공!"이라는 코드
  • 1024: 보낸 데이터 크기(1024 바이트)

2. AccessLog 설정 방법

AccessLog를 설정하면 어떤 기록을 남길지, 어디에 저장할지를 정할 수 있어.

Apache 웹 서버 설정

Apache는 웹 서버 프로그램 중 하나야. 설정 파일에서 AccessLog를 켜고 포맷을 정할 수 있어.

  1. 로그 포맷 설정

    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    
    • %h: 접속한 컴퓨터(IP)
    • %t: 접속 시간
    • %r: 요청 내용
    • %>s: 결과 코드(성공/실패)
    • %b: 데이터 크기
  2. 로그 저장 위치

    CustomLog "logs/access_log" common
    
    • "logs/access_log"라는 파일에 기록을 남긴다는 뜻이야.

Nginx 웹 서버 설정

Nginx도 많이 쓰는 웹 서버야. Apache와 비슷하게 설정해.

  1. 로그 포맷 설정

    log_format main '$remote_addr - $time_local "$request" $status $body_bytes_sent';
    
    • $remote_addr: 접속한 컴퓨터(IP)
    • $time_local: 접속 시간
    • $request: 요청 내용
    • $status: 결과 코드
    • $body_bytes_sent: 보낸 데이터 크기
  2. 로그 저장 위치

    access_log /var/log/nginx/access.log main;
    

3. AccessLog를 관리하는 이유

  1. 문제 찾기: "왜 사이트가 느려졌지?" 같은 문제를 확인할 수 있어.
  2. 사용자 분석: 사람들이 언제, 얼마나 많이 들어왔는지 알 수 있어.
  3. 보안: 누가 이상한 요청을 보냈는지 추적할 수 있어.

4. 쉽게 연습해보기

  1. 기록 보기
    • Apache나 Nginx 로그 파일을 열어봐:위 명령어는 로그 파일을 보여줘.
      cat /path/to/access_log
      
  2. 특정 요청만 찾기
    • "홈페이지(/index.html)를 요청한 기록만 보여줘":
      grep "/index.html" /path/to/access_log
      

AccessLog는 웹사이트에서 무슨 일이 일어나는지 모두 적어놓는 비밀 노트 같은 거야! 이걸 잘 활용하면 문제를 해결하거나 사용자 패턴을 이해하는 데 큰 도움이 돼. 🚀

0개의 댓글