문서API 참조
Documentation

Docker Management

Sandfly 애플리케이션의 통합 구성 요소로 Docker를 사용하는 경우, 관리 측면에서는 대부분 "hands-off"에 가깝습니다. 관련 Sandfly 배포판과 함께 최신 프로덕션 릴리스의 Docker 또는 Podman만 있으면 됩니다.

다만 기본 Docker 설정이 항상 호스트에 최적은 아닙니다. 이에 Sandfly 시스템에서 Docker 사용 방식을 개선하거나 수정할 수 있는 선택적 방법을 본 섹션에서 안내합니다.

로그 롤링

기본적으로 Docker는 컨테이너 로그를 롤링하지 않습니다. 따라서 오랫동안 실행되는 Sandfly 컨테이너는 매우 큰 로그 파일을 생성할 수 있습니다. 로그가 파일시스템을 가득 채우면 애플리케이션과 기반 호스트의 운영에도 영향을 줄 수 있습니다.

Sandfly의 Docker 컨테이너는 모든 로그 파일을 자동으로 롤링하도록 구성되어 있습니다. 여러분이 별도의 조치를 취할 필요는 없습니다.

또한 일부 컨테이너는 다른 컨테이너보다 로그 출력이 많은 경우가 있으므로, 필요에 맞게 로그 파일 크기를 사용자 지정할 수 있는 옵션을 제공합니다.

컨테이너 유형별 기본 최대 로그 크기:

  • Sandfly Server (sandfly-server) = 100m
  • Postgres (sandfly-postgres) = 20m
  • Sandfly Node = 인스턴스당 100m

모든 경우 컨테이너당 최대 5개의 로그 파일(현재 사용 중인 로그 + 최근에 롤링된 4개)을 유지하도록 로그 롤링이 설정되어 있습니다. 더 많거나 적은 파일을 유지해야 한다면 Sandfly support에 문의해 주세요.

단일 컨테이너 로그가 사용할 수 있는 최대 디스크 공간을 계산하려면, 설정된 최대 로그 파일 크기에 유지 파일 개수를 곱하면 됩니다.

🚧

주의: Sandfly 시작 스크립트를 사용하면 Docker 컨테이너 로그는 새로 시작됩니다

The use of the start scripts always creates a new container, in turn this will create a new log file. If the clean_docker.sh script is used to shutdown Sandfly, the old containers (and the logs within) will be deleted.

로그 파일 크기 사용자 지정

시작 스크립트는 Sandfly Server 및/또는 Node 컨테이너 로그에 대해 기본 100m로 설정된 Docker 최대 로그 크기를 사용자 지정할 수 있도록 지원합니다. 원하는 로그 크기를 설정하려면, Server 및/또는 Node에서 컨테이너를 실행하는 사용자 계정에 영구 환경 변수 SANDFLY_LOG_MAX_SIZE를 생성하고 원하는 값으로 설정하세요.

시작 스크립트가 환경 변수 값을 인식하려면 Docker 로그의 "max-size" 형식이어야 합니다. Sandfly에서 사용하려면 이 값은 양의 정수 뒤에 단위 소문자 m 또는 g가 이어져야 합니다. 형식이 맞지 않으면 로그 크기는 자동으로 기본값으로 폴백됩니다.

예를 들어 해당 계정의 셸이 bash라면, .bashrc를 편집하여 다음과 같은 한 줄을 추가할 수 있습니다:

export SANDFLY_LOG_MAX_SIZE=50m

그런 다음 다음과 같은 명령으로 rc 파일을 다시 로드합니다(환경에 맞게 파일 경로를 조정하세요):

source .bashrc

마지막으로 해당 환경 변수를 사용하려는 모든 Sandfly Server 및/또는 Node 컨테이너는 새(또는 변경된) 설정을 적용하려면 적절히 중지하고 정리(clean)한 뒤 다시 시작해야 합니다. 이는 업그레이드 시 수행하는 중지 및 시작 단계와 유사합니다.

위 예에서 해당 환경 변수를 서버와 모든 노드에 적용하면, 기본 100m 대신 로그당 약 50m 크기로 sandfly 서버/호스트 컨테이너 로그가 롤링됩니다.

외부 참고 자료:


이 페이지가 도움이 되었나요?