TIL

9_4.Docker 를 활용한 Log 관리

꿀승 2025. 2. 20. 22:15
728x90
반응형
SMALL

학습내용

  1. 표준 에러 스트림과 표준 출력 스트림
  2. 컨테이너 로그 수집 및 관리
  3. 디스크 관리

학습정리

1. 표준 에러 스트림과 표준 출력 스트림

  • 컨테이너 실행 및 로그 생성
    docker run --name log-test -d alpine sh -c 'echo "stdout log"; echo "stderr log" >&2'
    # sh -c 명령어로 stout, stderr로 각각 로그 출력
    # echo "stderr log" >&2  표준 에러로 메시지 보내기
  • 로그 확인
    docker logs log-test # 실행 중인 컨테이너 모든 로그
    docker logs --tail 5 log-test # 최근 5개 로그 출력
    docker logs -f log-test # 실시간 로그 스트림 확인
    docker logs --timestamps log-test # 로그출력시 타임스탬프 추가
    docker inspect --format='{{json .LogPath}}' log-test #로그를 JSON 포맷으로 확인하기 (json-file 드라이버 사용 시)
  • 다른 곳으로 출력된 로그 stdout 스트림에 전달
    docker run --name redirect-log1 -d alpine sh -c 'echo "App log" > /var/log/app.log && tail -f /var/log/app.log'

2. 컨테이너 로그 수집 및 관리

  • syslog 드라이버를 이용해 로그 전송 설정

    docker run --log-driver=syslog --log-opt syslog-address=udp://localhost:514 -d ubuntu echo "Logging to syslog"
  • 로그 로테이션 설정

    # Docker 컨테이너를 로그 로테이션 설정과 함께 실행
    docker run -d \
      --name=log-rotation-test \
      --log-opt max-size=10m \
      --log-opt max-file=3 \
      ubuntu bash -c 'while true; do echo "$(date) - Writing logs to fill up space..."; sleep 1; done'
    
    # 로그 확인
    docker logs -f log-rotation-test
    
    # 종료 
    docker stop log-rotation-test
    docker rm log-rotation-test

3. 디스크 관리

  • 디스크 관련 명령어
    docker system df # 전체 디스크 사용량 확인
    docker system df -v # 상세한 디스크 사용량 확인
    docker system prune -f # 사용하지 않는 리소스 정리
    docker volume prune -f # 사용하지 않는 볼륨 정리
    docker image prune -f # 사용하지 않는 이미지 정리

4. 기타 모니터링 관련 스크립트

  • 해당 스크립트 개인적으로 notion에서 관리
728x90
반응형
LIST