이 문서에서는 Batch 작업에 대해 Cloud Logging에서 로그를 사용 설정하고, 생성하고, 보는 방법을 설명합니다.
로그를 사용하여 작업 분석에 유용한 정보를 가져올 수 있습니다. 예를 들어 로그는 실패한 작업을 디버깅할 수 있습니다.
특히 로그는 작업 실행이 시작된 후 그리고 작업에 로깅이 사용 설정된 경우에만 생성됩니다. 로그 없이 작업을 분석해야 하는 경우 대신 상태 이벤트를 확인합니다.
시작하기 전에
- Batch를 사용한 적이 없으면 Batch 시작하기를 검토하고 프로젝트 및 사용자 기본 요건을 완료하여 Batch를 사용 설정하세요.
-
로그를 사용하여 작업을 분석하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.
- 작업 만들기:
-
프로젝트에 대한 Batch 작업 편집자(
roles/batch.jobsEditor
) -
기본적으로 기본 Compute Engine 서비스 계정인 작업의 서비스 계정에 대한 서비스 계정 사용자(
roles/iam.serviceAccountUser
)
-
프로젝트에 대한 Batch 작업 편집자(
- 로그 보기: 프로젝트에 대한 로그 뷰어(
roles/logging.viewer
)
역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.
- 작업 만들기:
작업 로깅 사용 설정
작업에 대한 로그 생성을 허용하려면 작업을 만들 때 Cloud Logging의 로그를 사용 설정합니다.
- Google Cloud 콘솔을 사용하여 작업을 만들면 Cloud Logging의 로그가 항상 사용 설정됩니다.
gcloud CLI 또는 Batch API를 사용하여 작업을 만들면 Cloud Logging의 로그가 기본적으로 중지됩니다. Cloud Logging에서 로그를 사용 설정하려면 작업을 만드는 동안
logsPolicy
필드에 다음 구성을 포함합니다.{ ... "logsPolicy": { "destination": "CLOUD_LOGGING" } ... }
작업 로그 작성 및 생성
작업에 대해 Cloud Logging의 로그가 사용 설정되면 Cloud Logging은 작업에 대해 기록된 모든 로그를 자동으로 생성합니다. 특히 Batch 작업은 다음 로그 유형을 포함할 수 있습니다.
에이전트 로그(
batch_agent_logs
): Batch 서비스 에이전트의 활동에 대한 로그입니다.Batch는 로깅을 사용 설정한 모든 작업의 에이전트 로그를 자동으로 작성합니다.
태스크 로그(
batch_task_logs
): 표준 출력(stdout
) 스트림 또는 표준 오류(stderr
) 스트림에 기록하도록 작업의 실행 가능 항목을 구성한 모든 데이터의 로그입니다.원하는 경우 로깅을 사용 설정한 각 작업에 대해 태스크 로그를 작성할 수 있습니다.
작업 로그 보기
Google Cloud 콘솔, gcloud CLI, Logging API, Go, Java, Python 또는 C++을 사용하여 작업 로그를 볼 수 있습니다.
콘솔
Google Cloud 콘솔을 사용하여 작업 로그를 보려면 다음을 수행합니다.
Google Cloud 콘솔에서 작업 목록 페이지로 이동합니다.
작업 이름 열에서 작업 이름을 클릭합니다. 작업 세부정보 페이지가 열립니다.
로그 탭을 클릭합니다. Batch는 작업과 관련된 모든 로그를 표시합니다.
선택사항: 로그를 필터링하려면 다음 중 하나를 수행합니다.
필터를 입력합니다.
필터 필드에심각도 목록에서 심각도를 선택합니다.
Batch 필터 매개변수를 사용하여 로그 탐색기에서 쿼리 빌드합니다.
로그 탐색기에서 보기를 클릭하고
gcloud
gcloud CLI를 사용하여 로그를 보려면 gcloud logging read
명령어를 사용합니다.
gcloud logging read "QUERY"
여기서 QUERY
는 Batch 필터 매개변수가 포함된 Batch 로그에 대한 쿼리입니다.
API
Logging API를 사용하여 로그를 보려면 entries.list
메서드를 사용합니다.
POST https://logging.googleapis.com/v2/entries:list
{
"resourceNames": [
"projects/PROJECT_ID"
],
"filter": "QUERY"
"orderBy": "timestamp desc"
}
다음을 바꿉니다.
PROJECT_ID
: 프로젝트의 프로젝트 ID입니다.QUERY
: Batch 필터 매개변수가 포함된 Batch 로그에 대한 쿼리입니다.
Go
Go
자세한 내용은 Batch Go API 참조 문서를 확인하세요.
Batch에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Java
Java
자세한 내용은 Batch Java API 참조 문서를 확인하세요.
Batch에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
Python
자세한 내용은 Batch Python API 참조 문서를 확인하세요.
Batch에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
C++
C++
자세한 내용은 Batch C++ API 참조 문서를 확인하세요.
Batch에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Batch 로그 필터링
다음 필터 매개변수 중 하나 이상과 0개 이상의 불리언 연산자(AND
, OR
, NOT
)가 포함된 쿼리를 작성하여 Batch 로그를 필터링할 수 있습니다.
특정 작업의 로그를 필터링하려면 작업의 고유 ID(UID)를 지정합니다.
labels.job_uid=JOB_UID
여기서
JOB_UID
는 작업의 UID입니다. 작업의 UID를 가져오려면 작업 세부정보를 확인합니다.특정 유형의 Batch 로그를 필터링하려면 로그 유형을 지정합니다.
logName=projects/PROJECT_ID/logs/BATCH_LOG_TYPE
다음을 바꿉니다.
PROJECT_ID
: 로그를 보려는 프로젝트의 프로젝트 IDBATCH_LOG_TYPE
: 보려는 Batch 로그의 유형(작업 로그의 경우batch_task_logs
, 에이전트 로그의 경우batch_agent_logs
)입니다.
커스텀 상태 이벤트가 있는 로그를 필터링하려면 해당 로그에서
jsonPayload.batch/custom/event
필드를 정의해야 합니다.jsonPayload.batch"/"custom"/"event!=NULL_VALUE
하나 이상의 특정 심각도의 로그를 필터링하려면 다음 비교 연산자를 지정합니다.
severityCOMPARISON_OPERATORSEVERITY_ENUM
다음을 바꿉니다.
COMPARISON_OPERATOR
: 비교 연산자(예:>=
)SEVERITY_ENUM
: 로그의 심각도를 설명하는LogSeverity
enum(예:ERROR
)
추가 필터 옵션은 Cloud Logging 쿼리 언어 문서를 참조하세요.
다음 단계
- 문제 해결 자세히 알아보기
- Cloud Logging에 대해 자세히 알아보기
- 태스크 로그 작성 방법 알아보기
- 작업 삭제 및 내보내기 방법 알아보기