[docker] 컨테이너 로그 (6)
카테고리: docker
태그: docker
🎯컨테이너 로그 보기
docker logs 명령은 실행 중인 컨테이너가 기록한 정보를 보여줍니다. 기록되는 정보와 로그의 형식은 전적으로 컨테이너의 엔드포인트 명령에 따라 다릅니다.
기본적으로 docker logs 명령은 컨테이너의 엔드포인트 명령의 STDOUT 과 STDERR 디스크립터 출력을 보여줍니다.
🎯컨테이너 로그 관리
Docker에는 실행 중인 컨테이너에서 정보를 얻는 데 도움이 되는 여러 로깅 메커니즘이 포함되어 있습니다. 이러한 메커니즘을 로깅 드라이버라고 합니다.
각 Docker 데몬에는 기본 로깅 드라이버가 있으며, 다른 로깅 드라이버(“log-driver”)를 사용하도록 구성하지 않는 한 각 컨테이너는 기본 로깅 드라이버를 사용합니다.
기본적으로 Docker는 컨테이너 로그를 내부적으로 JSON으로 저장하는 JSON 파일 로깅 드라이버를 사용합니다.
기본 로깅 드라이버 구성
특정한 로깅 드라이버로 Docker 데몬을 구성하려면 daemon.json 구성 파일에 log-driver 값을 로그 드라이버 이름으로 설정합니다. 만약 구성 가능한 옵션이 있는 경우에는 log-opts 키를 사용할 수 있습니다.
새로 생성된 컨테이너에 새 로깅 구성을 적용하려면 Docker를 다시 시작해야 합니다. 또한 기존 컨테이너는 새 로깅 구성을 사용하지 않습니다. 다음 예제는 기본 로깅 드라이버를 local 로그 드라이버로 설정하고 구성 가능한 네 가지 옵션을 설정합니다.
{
"log-driver": "local"
"log-opts": {
"max-size": "10m",
"max-file": "3",
"labels": "production_status",
"env": "os,customer"
}
}
Docker 데몬의 현재 기본 로깅 드라이버를 찾으려면
docker info를 실행하고Logging Driver를 검색합니다.
컨테이너 로깅 드라이버 구성
컨테이너를 시작할 때 --log-driver 플래그를 사용하여 Docker 데몬의 기본값이 아닌 다른 로깅 드라이버를 사용하도록 컨테이너를 구성할 수 있습니다.
로깅 드라이버에 구성 가능한 옵션이 있는 경우 하나 이상의 --log-opt <NAME>=<VALUE> 플래그를 사용하여 설정할 수 있습니다. 다음 예제에서는 none 로깅 드라이버로 Alpine 컨테이너를 시작합니다.
$ docker run -it --log-drive local --log-opt max-size=10m --log-opt max-file=3 alpine ping 127.0.0.1
지원되는 로깅 드라이버
| Driver | Description |
|---|---|
none |
컨테이너에 사용할 수 있는 로그가 없으며 docker logs 출력을 반환하지 않습니다. |
local |
로그는 사용자 지정 형식으로 저장됩니다. |
json-file |
로그는 JSON 형식입니다. Docker의 기본 로깅 그라이버입니다. |
syslog |
syslog facility에 로깅 메시지를 저장합니다. 호스트 시스템에서 syslog 데몬이 실행 중이어야 합니다. |
journald |
journald에 로그 메시지를 기록합니다. 호스트 시스템에서 journald 데몬이 실행 중이어야 합니다. |
gelf |
Graylog 또는 Logstash와 같은 GELF(Graylog Extended Log Format) 엔드포인트에 로그 메시지를 기록합니다. |
fluentd |
fluentd에 메시지를 기록합니다. 호스트 시스템에서 fluentd 데몬이 실행 중이어야 합니다. |
awslogs |
Amazon CloudWatch에 로그 메시지를 기록합니다. |
splunk |
HTTP Event Collector를 사용하여 splunk 로그 메시지를 작성합니다. |
etwlogs |
ETW(Windows용 이벤트 추적) 이벤트로 로그 메시지를 기록합니다. Windows 플랫폼에서만 사용할 수 있습니다. |
gcplogs |
Google Cloud Platform(GCP) Logging에 로그 메시지를 기록합니다. |
logentries |
Rapid7 Logentries에 로그 메시지를 기록합니다. |
📌출처
👍 개인 공부 기록용 블로그입니다. 오류나 조언이 있으시면 언제든지 댓글 혹은 메일로 남겨주시면 감사하겠습니다! 😄
댓글남기기