Google Cloud Logging 드라이버
Google Cloud Logging 드라이버 (Google Cloud Logging driver)
Google Cloud Logging 드라이버는 컨테이너 로그를 Google Cloud Logging Logging으로 보내요.
출처: 문서
본문
사용법 (Usage)
gcplogs 드라이버를 기본 로깅 드라이버로 사용하려면 daemon.json 파일에서 log-driver와 log-opt 키를 적절한 값으로 설정해요. daemon.json으로 Docker를 구성하는 것에 대한 자세한 내용은 daemon.json을 참고하세요.
Note Docker Desktop을 사용한다면 Docker Desktop Dashboard를 통해 데몬 구성을 편집해요. Settings를 열고 Docker Engine을 선택해요. 자세한 내용은 Docker Engine 설정을 참고하세요.
다음 예시는 로그 드라이버를 gcplogs로 설정하고 gcp-meta-name 옵션을 설정해요.
{
"log-driver": "gcplogs",
"log-opts": {
"gcp-meta-name": "example-instance-12345"
}
}
변경 사항을 적용하려면 Docker를 재시작해요.
특정 컨테이너의 로깅 드라이버를 설정하려면 docker run에 --log-driver 옵션을 사용해요:
$ docker run --log-driver=gcplogs ...
Docker가 Google Cloud 프로젝트에서 실행되고 있음을 감지하면 인스턴스 메타데이터 서비스에서 구성을 발견해요. 그렇지 않으면 --gcp-project 로그 옵션으로 로그를 기록할 프로젝트를 지정해야 하며, Docker는 Google Application Default Credential에서 자격 증명을 얻으려 시도해요. --gcp-project 플래그는 메타데이터 서버에서 발견된 정보보다 우선하므로, Google Cloud 프로젝트에서 실행되는 Docker 데몬이 --gcp-project로 다른 프로젝트에 로그하도록 재정의할 수 있어요.
Docker는 zone, 인스턴스 이름, 인스턴스 ID 값을 Google Cloud 메타데이터 서버에서 가져와요. 메타데이터 서버를 사용할 수 없으면 이 값들을 옵션으로 제공할 수 있어요. 그것들은 메타데이터 서버의 값을 재정의하지 않아요.
gcplogs 옵션 (gcplogs options)
--log-opt NAME=VALUE 플래그를 사용해 다음 추가 Google Cloud Logging 드라이버 옵션을 지정할 수 있어요:
| Option | Required | Description |
|---|---|---|
gcp-project |
optional | 로그를 기록할 Google Cloud 프로젝트. 기본은 Google Cloud 메타데이터 서버에서 이 값을 발견하는 것. |
gcp-log-cmd |
optional | 컨테이너가 시작된 명령을 로그할지 여부. 기본값은 false. |
labels |
optional | 컨테이너에 지정된 경우 메시지에 포함해야 하는 라벨 키의 쉼표 구분 목록. |
labels-regex |
optional | labels와 유사하고 호환됨. 로깅 관련 라벨을 일치시키는 정규식. 고급 log tag options에서 사용. |
env |
optional | 컨테이너에 지정된 경우 메시지에 포함해야 하는 환경 변수 키의 쉼표 구분 목록. |
env-regex |
optional | env와 유사하고 호환됨. 로깅 관련 환경 변수를 일치시키는 정규식. 고급 log tag options에서 사용. |
gcp-meta-zone |
optional | 인스턴스의 zone 이름. |
gcp-meta-name |
optional | 인스턴스 이름. |
gcp-meta-id |
optional | 인스턴스 ID. |
label과 env 키 사이에 충돌이 있으면 env 값이 우선해요. 두 옵션 모두 로깅 메시지의 속성에 추가 필드를 더해요.
다음은 Google Cloud 메타데이터 서버를 조회해 발견되는 기본 로깅 대상에 로그하는 데 필요한 로깅 옵션의 예시예요.
$ docker run \
--log-driver=gcplogs \
--log-opt labels=location \
--log-opt env=TEST \
--log-opt gcp-log-cmd=true \
--env "TEST=false" \
--label location=west \
your/application
이 구성은 또한 드라이버가 페이로드에 라벨 location, 환경 변수 ENV, 컨테이너를 시작하는 데 사용된 명령을 포함하도록 지시해요.
다음 예시는 Google Cloud 밖에서 실행하기 위한 로깅 옵션을 보여줘요. 데몬에 GOOGLE_APPLICATION_CREDENTIALS 환경 변수가 설정되어 있어야 해요. 예를 들어 systemd로:
[Service]
Environment="GOOGLE_APPLICATION_CREDENTIALS=uQWVCPkMTI34bpssr1HI"
$ docker run \
--log-driver=gcplogs \
--log-opt gcp-project=test-project \
--log-opt gcp-meta-zone=west1 \
--log-opt gcp-meta-name=`hostname` \
your/application