[Docker] Web container log 유지 및 실시간 확인 Volume 구성

2024. 10. 28. 10:45·OS/Docker

이번 포스팅에서는 Nginx 컨테이너의 접근 로그와 에러 로그를 호스트의 볼륨으로 마운트하여 실시간으로 확인하고, 컨테이너가 중지되어도 로그 기록을 유지하도록 구성해볼 것이다. 이를 통해 Nginx 로그에서 특정 시간대의 접근 기록을 확인하여 웹 서버의 접속 현황을 분석해보고자 한다. 즉,  Nginx 컨테이너의 접근 및 에러 로그 영역을 볼륨으로 구성하여 실시간 접근 기록 확인 및 장애 시 에러에 대한 정보를 컨테이너가 중지되어도 확인 가능하도록 한다 .


 

1. Nginx 로그 디렉터리 생성

ubuntu@docker:~$ mkdir nginx-log

 

nginx-log 라는 디렉터리를 생성하여 Nginx의 로그 파일을 저장할 호스트 디렉터리를 준비해준다. 

 

2. Nginx 컨테이너 실행 및 볼륨 마운트 설정

ubuntu@docker:~$ docker run -d --name=myweb -v /home/ubuntu/nginx-log:/var/log/nginx -p 8011:80 nginx:1.25.0-alpine

 

차례대로 설명을 해보자면 먼저 nginx 컨테이너를 백그라운드로 실행하고, myweb 이라는 이름을 부여해준다. 이후 볼륨 마운트(-v)를 설정하여 /home/ubuntu/nginx-log 디렉터리를 컨테이너 /var/log/nginx 로 마운드 하여 Nginx의 접근 및 에러 로그가 호스트 디렉터리에 저장되도록 해주었다. 

 

3. 컨테이너 상태 확인 

ubuntu@docker:~$ docker ps | grep myweb
6a43d3f0c784   nginx:1.25.0-alpine   "/docker-entrypoint.…"   30 seconds ago   Up 30 seconds   
0.0.0.0:8011->80/tcp, :::8011->80/tcp   myweb

 

myweb 컨테이너가 정삭적으로 실행 중인 것을 확인할 수 있었고, 포트 매핑 정보가 (0.0.0.0:8001 ->80 tcp)와 컨테이너 상태를 확인할 수 있었다. 

 

4. Nginx 로그 파일 확인

ubuntu@docker:~$ ls nginx-log
access.log  error.log

 

5. 실시간 로그 모니터링

ubuntu@docker:~$ tail -f nginx-log/access.log
192.168.56.1 - - [28/Oct/2024:01:41:42 +0000] "GET / HTTP/1.1" 200 615 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36" "-"
192.168.56.1 - - [28/Oct/2024:01:41:42 +0000] "GET /favicon.ico HTTP/1.1" 404 555 "http://192.168.56.10:8011/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36" "-"

 

tail -f  명령어를 사용하여 access.log 파일의 실시간 로그를 모니터링 했다. 이 로그에서 클라이언트의 요청이 기록되는 것을 확인 할 수 있었고 , curl 명령어를 통해 접속할 때마다 로그가 추가되는 것을 배울 수 있었다. 

 


 

test 1. Nginx 접근 테스트

ubuntu@docker:~$ curl http://192.168.56.101:8011

 

test 2. 특정 시간대의 IP 접근 횟수 분석

awk '$4>"[02/Jan/2024:09:55:00]" && $4<"[02/Jan/2024:09:56:00]"' access.log | \
awk '{ print $1 }' | sort | uniq -c | sort -r | more

 

 

 

 

Nginx의 접근 로그와 에러로그를 호스트에 마운트하여 실시간 로그를 확인할 수 있었고, 컨테이너 중지 시에도 로그를 유지할 수 있도록 하는 설정을 배울 수 있었다. 또한 접근 로그를 분석하여 특정 시간대에 접속 기록과 접속 횟수를 확인하는 방법을 익힐 수 있었고, 나중에 웹에서 장애가 발생 시 원인을 분석하거나, 웹 서버의 트래픽 현환을 모니터링 하는 데 유용할 것 같다. 

저작자표시 비영리 변경금지 (새창열림)

'OS > Docker' 카테고리의 다른 글

[Docker] Dokerfile 빌드 (개발 & 배포 과정)  (0) 2024.10.28
[Docker] Dockerfile 및 명령어  (0) 2024.10.28
[Docker] 암시적 docker volumes  (0) 2024.10.28
[Docker] Proxy vs Reverse Proxy 차이  (0) 2024.10.21
[Docker] Volume - Bind mount 실습  (0) 2024.10.21
'OS/Docker' 카테고리의 다른 글
  • [Docker] Dokerfile 빌드 (개발 & 배포 과정)
  • [Docker] Dockerfile 및 명령어
  • [Docker] 암시적 docker volumes
  • [Docker] Proxy vs Reverse Proxy 차이
Kouji
Kouji
Journey to Becoming a Data & Server Engineer
  • Kouji
    Kouji's Data & Server Journey
    Kouji
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Programming
        • Python
        • SQL
      • Data & AI
        • Data Analysis
        • Ai
      • Cloud(AWS)
      • OS
        • Linux
        • Docker
        • Jenkins
        • Ubuntu
        • Window
        • Kubernates
        • Ansible
      • Network
        • NVIDIA
        • Network[이론]
        • Network[GNS3, Packet]
        • Network[On-Premise]
        • Network [L2, L3]
      • 트러블 슈팅
      • Life
        • My Career Stories
        • Personal
      • 개발 + OS 지식 함양
  • 블로그 메뉴

    • 홈
    • 관리 페이지
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    서버엔지니어
    클라우드엔지니어
    시스템엔지니어
    인프라엔지니어
    AWS
    네트워크
    서버
    OS
    CISCO
    dns
    티스토리챌린지
    VMware
    docker
    오블완
    네트워크엔지니어링
    라우팅
    웹
    스위치
    L3
    화이팅
    네트워크관리사
    알고리즘
    네트워크엔지니어
    인프라
    리눅스
    보안
    Linux
    도커
    ubuntu
    IT
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Kouji
[Docker] Web container log 유지 및 실시간 확인 Volume 구성
상단으로

티스토리툴바