이 문서에서는 클라이언트 라이브러리를 사용하거나 Google Cloud CLI를 사용하여 알림 채널을 만들고 관리하는 방법을 설명합니다. 둘 다 Cloud Monitoring API를 호출합니다. Cloud Monitoring은 알림 채널을 사용하여 알림 정책의 조건이 충족되면 사용자 또는 긴급 대기팀에 알립니다. 채널 유형에는 여러 가지가 있으며 각 유형은 알림 채널 설명자를 통해 설명됩니다. 일정 유형의 알림 채널은 해당 유형의 설명자 인스턴스입니다. 알림 정책에는 알림 경로로 사용되는 알림 채널에 대한 참조가 포함됩니다.
알림 정책에서 사용하려면 먼저 알림 채널이 존재해야 합니다. 알림 채널 설명자가 제공되지만 사용하기 전에 채널을 만들어야 합니다.
Google Cloud 콘솔을 사용하여 알림 채널을 구성하려면 알림 채널 만들기 및 관리를 참조하세요.
이 문서에 사용된 코드 샘플은 예시: 백업 및 복원에 설명된 알림 정책 API 예시에서 추출되었습니다.
API 정보
NotificationChannel
리소스는 알림 채널을 관리할 수 있는 작업을 지원합니다. 또한 채널의 verificationStatus
필드 관리와 관련된 작업도 지원합니다.
- 인증 코드 전송
- 확인된 채널의 인증 상태를 동일 또는 새 프로젝트의 동일한 다른 채널에 복사하는 코드 생성
- 이전 두 작업으로 만든 코드를 사용한 채널 확인
자세한 내용은 notificationChannels
참조를 확인하세요.
시작하기 전에
Cloud Monitoring API를 사용하여 알림 채널을 보고 구성하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 모니터링 알림 채널 편집자(roles/monitoring.notificationChannelEditor
) IAM 역할을 부여해 달라고 요청하세요.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
Cloud Monitoring 역할에 대한 자세한 내용은 Identity and Access Management로 액세스 제어를 참조하세요.
알림 채널 유형 나열
모니터링은 여러 개의 기본 제공 알림 채널 유형을 제공합니다. 각 유형은 NotificationChannelDescriptor
를 통해 설명됩니다.
이 설명자에는 type
필드가 있으며 채널 유형의 인스턴스를 만들 때 이 필드의 값이 식별자로 기능합니다. Cloud Monitoring API 또는 Google Cloud CLI를 사용하여 만들 수 있는 채널 유형 목록을 검색하려면 다음 명령어를 입력합니다.
$ gcloud beta monitoring channel-descriptors list --format='value(type)'
campfire
email
google_chat
hipchat
pagerduty
pubsub
slack
sms
webhook_basicauth
webhook_tokenauth
알림 채널에 대한 자세한 내용은 알림 채널 만들기 및 관리를 참고하세요.
선호하는 알림 채널이 지원되지 않는 경우 Pub/Sub에 알림을 보내는 파이프라인을 만드는 것이 좋습니다. Flask를 사용하는 Python 예시는 Cloud Monitoring 및 Cloud Run으로 커스텀 알림 만들기를 참조하세요. 다른 예시는 cloud-alerting-notification-forwarding Git 저장소를 참조하세요.
Google Cloud 프로젝트의 모든 채널 설명자를 검색하려면 notificationChannelDescriptors.list
메서드를 사용하세요.
검색된 설명자는 읽기 전용입니다.
특정 설명자를 찾고 있는 경우 설명자 이름을 알면 notificationChannelDescriptors.get
메서드를 사용하여 해당 정책만 검색할 수 있습니다. 채널 설명자의 이름은 projects/[PROJECT_ID]/notificationChannelDescriptors/[CHANNEL_TYPE]
[CHANNEL_TYPE]
형식이며 위에 나열된 유형 중 하나여야 합니다.
projects/[PROJECT_ID]/notificationChannelDescriptors/email
gcloud
Google Cloud 프로젝트의 모든 알림 채널 설명자를 나열하려면 gcloud beta monitoring channel-descriptors list
명령어를 사용하세요.
gcloud beta monitoring channel-descriptors list
성공하면 list
명령어가 지정된 프로젝트의 모든 채널 설명 목록을 제공합니다. 예를 들어 email
채널 설명자가 다음과 같이 목록에 표시됩니다.
--- description: A channel that sends notifications via email. displayName: Email labels: - description: An address to send email. key: email_address name: projects/[PROJECT_ID]/notificationChannelDescriptors/email type: email ---
모든 채널 설명자에는 다음 필드가 포함됩니다.
name
: 채널 설명자의 정규화된 리소스 이름입니다.type
: 채널 유형을 나타내는 이름 부분입니다.displayName
: 표시를 위한type
필드에 대한 설명description
: 채널에 대한 간단한 설명입니다.labels
: 채널 유형과 관련된 필드 집합입니다. 각 채널 유형에는 고유한 라벨 집합이 포함되어 있습니다.
채널이 생성되면 기본적으로 true
값을 사용해서 enabled
필드를 가져옵니다.
단일 채널 설명자를 나열하려면 대신 gcloud beta monitoring
channel-descriptors describe
를 사용하고, 채널 설명자 이름을 지정합니다. 정규화된 이름을 지정할 필요는 없습니다. 예를 들어 다음 명령어는 모두 위 목록을 반환합니다.
gcloud beta monitoring channel-descriptors describe email
gcloud beta monitoring channel-descriptors describe projects/[PROJECT_ID]/notificationChannelDescriptors/email
자세한 내용은 gcloud beta monitoring channel-descriptors
list
및 describe
참조를 확인하세요. describe
명령어는 API의 notificationChannelDescriptors.get
메서드에 해당합니다.
알림 채널 만들기
Google Cloud CLI를 사용하여 프로그래매틱 방식으로 JSON 또는 YAML 파일에서 Google Cloud 프로젝트의 알림 채널을 만들 수 있습니다.
알림 채널을 만들려면 해당 설명자의 필드에 값을 제공해야 합니다. 이 가운데 대부분은 type
와 같이 모든 알림 채널 설명자를 통틀어 공통입니다(notificationChannelDescriptors
참조).
각 설명자에는 일련의 라벨이 있으며, 이는 설명자별로 다릅니다. 특정 설명자의 라벨 집합을 보려면 알림 채널 유형 나열에 설명된 gcloud beta monitoring channel-descriptors describe
명령어를 사용하여 설명자를 검색합니다.
예를 들어 email
채널 설명자를 검색하면 단일 라벨이 표시됩니다.
labels: - description: An address to send email. key: email_address
pubsub
채널 설명자에도 단일 라벨이 포함됩니다. 이 라벨은 Pub/Sub 주제를 식별합니다. 그러나 채널은 여러 라벨을 포함할 수 있습니다. 예를 들어 slack
채널 설명자에 다음 2개의 라벨이 있습니다.
labels: - description: A permanent authentication token provided by Slack. This field is obfuscated by returning only a few characters of the key when fetched. key: auth_token - description: The Slack channel to which to post notifications. key: channel_name
webhook_basicauth
채널 설명자를 검색하면 몇 가지 라벨이 표시됩니다.
labels: - description: The password. The field is obfuscated when the channel is fetched. key: password - description: The public URL to which to publish the webhook. key: url - description: The username. key: username
프로그래매틱 방식으로 또는 명령줄에서 채널을 새로 만들면 사양의 type
값이 해당 알림 채널 설명자의 type
필드와 일치해야 합니다. 모든 필수 라벨 키도 채널 설명자의 값과 일치해야 합니다.
일부 라벨은 공급자에 인증하는 데 사용되는 사용자 인증 정보에 해당합니다. 채널을 만들 때 공급자로부터 이러한 라벨의 값을 받아야 합니다. 사용자 인증 정보를 받으려면 공급자의 웹사이트에 있는 API 키 생성 페이지를 사용하거나 공급자와 관련된 OAuth 로그인 흐름을 완료하면 됩니다. 이러한 사용자 인증 정보를 받는 방법에 대한 세부정보는 공급자에 따라 다릅니다.
예를 들어 다음은 JSON 형식의 새 pubsub
알림 채널 사양입니다.
{ "type": "pubsub", "displayName": "Notifications", "description": "Pub/Sub channel for notifications", "labels": { "topic": "projects/[PROJECT_ID]/topics/notificationTopic" }, }
type
값(pubsub
) 및 단일 라벨 키(topic
)는 해당 채널 설명자의 type
및 labels.key
필드와 일치합니다.
채널은 기본적으로 사용 설정됩니다. 비활성 채널을 만들려면 false
값으로 enabled
필드를 포함할 수 있습니다.
다음 예시에서는 알림 채널의 생성을 보여줍니다.
gcloud
Google Cloud 프로젝트에 알림 채널을 만들려면 gcloud beta monitoring
channels create
명령어를 사용합니다. 파일에서 채널을 로드하려면 --channel-content-from-file
플래그를 사용하여 파일을 지정합니다.
다음 예시에서는 pubsub-channel.json
파일에서 새 Pub/Sub 채널을 만듭니다.
gcloud beta monitoring channels create --channel-content-from-file="pubsub-channel.json"
성공하면 이 명령어가 새 채널의 이름을 반환합니다. 예를 들면 다음과 같습니다.
Created notification channel [projects/[PROJECT_ID]/notificationChannels/1355376463305411567].
자세한 내용은 gcloud beta monitoring channels create
참조를 확인하세요.
C#
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Node.js
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Go
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Java
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
PHP
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
예시: Slack 알림 채널 만들기
Slack 앱의 알림 채널을 구성하려면 다음을 수행합니다.
Slack 앱을 구성합니다.
- Slack 앱이 아직 없으면 Slack 참고 문서를 따라 앱을 만들고 작업공간에 설치합니다.
chat:write
및chat:write.public
의 OAuth 범위로 Slack 앱을 구성합니다.- 앱의 봇 사용자 OAuth 토큰을 복사합니다.
알림 채널의 구성을 정의하는 파일을 만듭니다.
auth_token
키에 Slack 앱의 봇 사용자 OAuth 토큰 값이 있는 라벨을 포함합니다. 예를 들면 다음과 같습니다.{ "description": "A Slack notification channel", "displayName": "Slack", "type": "slack", "enabled": true, "labels": { "auth_token": "OAUTH_TOKEN_VALUE", "channel_name": "SLACK_CHANNEL_NAME" } }
다음 명령어를 실행하여 알림 채널을 만듭니다.
gcloud beta monitoring channels create --channel-content-from-file="FILE_NAME"
프로젝트의 알림 채널 나열
Google Cloud 프로젝트의 모든 알림 채널을 검색하려면 notificationChannels.list
메서드를 사용합니다. 또한 이 메서드는 결과를 제한하고 정렬하는 filter
및 orderBy
옵션을 지원합니다. 자세한 내용은 정렬 및 필터링하기를 참조하세요.
특정 채널을 찾고 있는 경우 채널 이름을 알면 notificationChannels.get
메서드를 사용하여 해당 채널만 검색할 수 있습니다. 채널 이름은 projects/[PROJECT_ID]/notificationChannels/[CHANNEL_ID]
형식입니다. 예를 들면 다음과 같습니다.
projects/[PROJECT_ID]/notificationChannels/1355376463305411567
채널을 검색할 때 인증 토큰 및 API 키와 같은 중요한 값이 보안상의 이유로 난독화될 수 있습니다. 기존 채널을 복사하여 새로운 채널을 생성하는 경우 난독화된 값을 수정해야 합니다.
gcloud
Google Cloud 프로젝트의 모든 알림 채널을 나열하려면 gcloud beta monitoring channels list
명령어를 사용합니다.
gcloud beta monitoring channels list
성공하면 list
명령어가 지정된 프로젝트의 모든 채널 목록을 제공합니다. 예를 들어 위의 명령어는 다음 항목을 포함하는 목록을 반환할 수 있습니다.
--- description: E-mail channel created by gcloud as a test displayName: test e-mail channel enabled: false labels: email_address: user@example.com name: projects/[PROJECT_ID]/notificationChannels/1355376463305411567 type: email --- description: Pub/Sub channel for notifications displayName: Notifications enabled: true labels: topic: projects/[PROJECT_ID]/topics/notificationTopic name: projects/[PROJECT_ID]/notificationChannels/1355376463305411567 type: pubsub
단일 채널을 나열하려면 대신 gcloud beta monitoring
channels describe
를 사용하고 채널 이름을 지정합니다.
예를 들어 이 명령어는 위 목록에 표시된 Pub/Sub 채널을 반환합니다.
gcloud beta monitoring channels describe projects/[PROJECT_ID]/notificationChannels/1355376463305411567
자세한 내용은 gcloud beta monitoring channels list
및 describe
참조를 확인하세요. describe
명령어는 API의 notificationChannels.get
메서드에 해당합니다.
C#
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Node.js
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Go
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Java
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
PHP
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
프로젝트에서 알림 채널 삭제
Google Cloud 프로젝트에서 알림 채널을 삭제하려면 notificationChannels.delete
메서드를 사용하고 삭제할 알림 채널의 이름을 제공합니다. 채널 이름은 NotificationChannel
인스턴스에서 displayName
이 아닌 name
필드의 값입니다.
채널 이름은 projects/[PROJECT_ID]/notificationChannels/[CHANNEL_ID]
형식입니다. 예를 들면 다음과 같습니다.
projects/[PROJECT_ID]/notificationChannels/1355376463305411567
기본적으로 알림 정책에서 참조하는 채널을 삭제하려고 하면 채널이 삭제되지 않습니다. 알림 정책에서 참조를 강제로 삭제하고 채널을 삭제하려면 force
옵션을 true
로 설정합니다. 이 옵션은 모든 참조 정책에서 채널을 자동으로 삭제합니다.
gcloud
알림 채널을 삭제하려면 gcloud beta monitoring channels
delete
를 사용하고 삭제할 채널 이름을 지정합니다. 예를 들어 다음 명령어는 또 다른 예시에 생성된 email
채널을 삭제합니다.
gcloud beta monitoring channels delete projects/[PROJECT_ID]/notificationChannels/1355376463305411567
자세한 내용은 gcloud beta monitoring channels delete
참조를 확인하세요.
C#
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Go
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Java
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
PHP
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Node.js
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
알림 채널 수정
알림 채널을 수정하려면 notificationChannels.patch
메서드(REST API)를 사용합니다.
다른 API 구현 및 Google Cloud CLI에서는 patch
대신 update
를 호출합니다.
업데이트 작업으로는 기존 채널을 완전히 대체하거나 필드 하위 집합을 수정할 수 있습니다. 예를 들어 채널의 사용 설정 및 사용 중지가 가능합니다. 채널을 사용 중지하면 채널에 알림이 전달되지 않습니다. 임시로 변경하려는 경우에는 일반적으로 채널을 참조하는 알림 정책에서 채널을 삭제하는 것보다 채널을 사용 중지하는 편이 훨씬 더 편합니다.
gcloud
사용 중지된 알림 채널을 사용 설정하려면 gcloud beta monitoring channels update
명령어를 사용하고 --enabled
플래그를 제공합니다. 다음 명령어는 이전 예에서 사용 중지된 상태로 생성된 email
알림 채널을 사용 설정합니다.
gcloud beta monitoring channels update projects/[PROJECT_ID]/notificationChannels/1355376463305411567 --enabled
정책을 사용 중지하려면 동일한 명령어를 사용하고 --no-enabled
플래그를 제공합니다.
자세한 내용은 gcloud beta monitoring channels update
참조를 확인하세요. update
명령어는 REST API의 notificationChannels.patch
메서드에 해당합니다.
C#
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Go
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Node.js
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Java
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
PHP
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
알림 채널 로그 보기
로그 탐색기를 사용하여 알림 채널 오류를 볼 수 있습니다.
-
Google Cloud 콘솔에서 로그 탐색기 페이지로 이동합니다.
검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Logging인 결과를 선택합니다.
쿼리를 입력하고 실행합니다. 알림 채널 오류 관련 쿼리에 대해서는 Cloud Monitoring 쿼리를 참조하세요.