Monitoring API를 사용하여 알림 관리
' Monitoring ' API를 사용하여 ' IBM Cloud Monitoring ' 인스턴스에서 알림을 관리할 수 있습니다.
cURL을 사용하는 방법을 알아보려면 cURL 명령을 참조하십시오.
사용자 알림 모두 페치
다음 cURL 명령을 사용하여 모든 알림 채널에 대한 정보를 가져올 수 있습니다.
curl -X GET <REST_API_ENDPOINT>/api/notificationChannels?from=<START_TIMESTAMP>&to=<END_TIMESTAMP> -H "Authorization: $AUTH_TOKEN" -H "IBMInstanceID: $GUID" -H "SysdigTeamID: $TEAM_ID" -H "content-type: application/json"
여기서,
-
<REST_API_ENDPOINT>은(는) REST API 호출이 대상으로 하는 엔드포인트를 표시합니다. 자세한 정보는 MonitoringREST API 엔드포인트를 참조하십시오. 예를 들어, 미국에서 사용 가능한 인스턴스에 대한 공용 엔드포인트는 다음과 같습니다.https://us-south.monitoring.cloud.ibm.com/api -
-H를 사용하여 여러 헤더를 전달할 수 있습니다.Authorization및IBMInstanceID는 인증에 필요한 헤더입니다.SysdigTeamID는 선택사항입니다. 이 헤더를 지정하면 지정된 팀에 사용 가능한 데이터 및 리소스로 요청이 제한됩니다.AUTH_TOKEN및GUID를 가져오려면 IAM 토큰에 대한 헤더를 참조하십시오. -
to및from은 알림에 대한 정보를 원하는 기간을 구성하기 위해 정의해야 하는 조회 매개변수입니다.
응답 형식에 대한 자세한 정보는 알림 스키마를 참조하십시오.
특정 사용자 알림 페치
다음 cURL 명령을 사용하여 알림 채널에 대한 정보를 가져올 수 있습니다.
curl -X GET <REST_API_ENDPOINT>/api/notificationChannels/<NOTIFICATION_ID> -H "Authorization: $AUTH_TOKEN" -H "IBMInstanceID: $GUID" -H "SysdigTeamID: $TEAM_ID" -H "content-type: application/json"
여기서,
-
<REST_API_ENDPOINT>은(는) REST API 호출이 대상으로 하는 엔드포인트를 표시합니다. 자세한 정보는 MonitoringREST API 엔드포인트를 참조하십시오. 예를 들어, 미국에서 사용 가능한 인스턴스에 대한 공용 엔드포인트는 다음과 같습니다.https://us-south.monitoring.cloud.ibm.com/api -
-H를 사용하여 여러 헤더를 전달할 수 있습니다.Authorization및IBMInstanceID는 인증에 필요한 헤더입니다.SysdigTeamID는 선택사항입니다. 이 헤더를 지정하면 지정된 팀에 사용 가능한 데이터 및 리소스로 요청이 제한됩니다.AUTH_TOKEN및GUID를 가져오려면 IAM 토큰에 대한 헤더를 참조하십시오. -
<NOTIFICATION_ID>'은 수정하려는 알림의 ID를 정의합니다.
예를 들어, 이메일 알림 채널의 응답 본문은 다음과 같습니다.
{
"notificationChannel": {
"id": 20,
"version": 1,
"createdOn": 1466023669000,
"modifiedOn": 1466023669000,
"type": "EMAIL",
"enabled": true,
"name": "emailChannel",
"options": {
"emailRecipients": [
"abc@xyz.com"
],
"notifyOnOk": false
}
}
}
알림 작성
다음 cURL 명령을 사용하여 알림을 작성할 수 있습니다.
curl -X POST <REST_API_ENDPOINT>/api/notificationChannels -H "Authorization: $AUTH_TOKEN" -H "IBMInstanceID: $GUID" -H "SysdigTeamID: $TEAM_ID" -H "content-type: application/json" -d @notification.json
여기서,
-
<REST_API_ENDPOINT>은(는) REST API 호출이 대상으로 하는 엔드포인트를 표시합니다. 자세한 정보는 MonitoringREST API 엔드포인트를 참조하십시오. 예를 들어, 미국에서 사용 가능한 인스턴스에 대한 공용 엔드포인트는 다음과 같습니다.https://us-south.monitoring.cloud.ibm.com/api -
-H를 사용하여 여러 헤더를 전달할 수 있습니다.Authorization및IBMInstanceID는 인증에 필요한 헤더입니다.SysdigTeamID는 선택사항입니다. 이 헤더를 지정하면 지정된 팀에 사용 가능한 데이터 및 리소스로 요청이 제한됩니다.AUTH_TOKEN및GUID를 가져오려면 IAM 토큰에 대한 헤더를 참조하십시오. -
notification.json를 사용하여-d파일에서 알림을 작성하는 데 필요한 데이터를 전달할 수 있습니다.유효한 유형은 '
EMAIL, 'PAGER_DUTY' , 'SLACK' , 'VICTOROPS' 입니다.
다음 샘플은 알림을 작성하기 위해 설정할 수 있는 요청 본문 매개변수를 표시합니다.
{
"notificationChannel": {
"type": "SLACK",
"enabled": true,
"name": "my-slack-channel",
"options": {
"notifyOnOk": true,
"url": "https://hooks.slack.com/services/xxx",
"channel": "myslack"
"notifyOnResolve": true,
}
}
}
알림 삭제
기존 알림을 삭제하려면 이 알림의 ID가 필요합니다.
다음 cURL 명령을 사용하여 알림을 삭제할 수 있습니다.
curl -X DELETE <REST_API_ENDPOINT>/api/notificationChannels/<NOTIFICATION_ID> -H "Authorization: $AUTH_TOKEN" -H "IBMInstanceID: $GUID" -H "SysdigTeamID: $TEAM_ID" -H "content-type: application/json"
여기서,
-
<REST_API_ENDPOINT>은(는) REST API 호출이 대상으로 하는 엔드포인트를 표시합니다. 자세한 정보는 MonitoringREST API 엔드포인트를 참조하십시오. 예를 들어, 미국에서 사용 가능한 인스턴스에 대한 공용 엔드포인트는 다음과 같습니다.https://us-south.monitoring.cloud.ibm.com/api -
-H를 사용하여 여러 헤더를 전달할 수 있습니다.Authorization및IBMInstanceID는 인증에 필요한 헤더입니다.SysdigTeamID는 선택사항입니다. 이 헤더를 지정하면 지정된 팀에 사용 가능한 데이터 및 리소스로 요청이 제한됩니다.AUTH_TOKEN및GUID를 가져오려면 IAM 토큰에 대한 헤더를 참조하십시오. -
<NOTIFICATION_ID>'은 수정하려는 알림의 ID를 정의합니다.
알림 업데이트
기존 알림을 업데이트하려면 이 알림의 ID가 필요합니다.
다음 cURL 명령을 사용하여 알림을 업데이트할 수 있습니다.
curl -X PUT <REST_API_ENDPOINT>/api/notificationChannels/<NOTIFICATION_ID> -H "Authorization: $AUTH_TOKEN" -H "IBMInstanceID: $GUID" -H "SysdigTeamID: $TEAM_ID" -H "content-type: application/json" -d @notification.json
여기서,
-
<REST_API_ENDPOINT>은(는) REST API 호출이 대상으로 하는 엔드포인트를 표시합니다. 자세한 정보는 MonitoringREST API 엔드포인트를 참조하십시오. 예를 들어, 미국에서 사용 가능한 인스턴스에 대한 공용 엔드포인트는 다음과 같습니다.https://us-south.monitoring.cloud.ibm.com/api -
-H를 사용하여 여러 헤더를 전달할 수 있습니다.Authorization및IBMInstanceID는 인증에 필요한 헤더입니다.SysdigTeamID는 선택사항입니다. 이 헤더를 지정하면 지정된 팀에 사용 가능한 데이터 및 리소스로 요청이 제한됩니다.AUTH_TOKEN및GUID를 가져오려면 IAM 토큰에 대한 헤더를 참조하십시오. -
<NOTIFICATION_ID>'은 수정하려는 알림의 ID를 정의합니다. -
notification.json를 사용하여-d파일에서 알림을 작성하는 데 필요한 데이터를 전달할 수 있습니다.
다음 샘플은 알림을 업데이트하기 위해 설정할 수 있는 요청 본문 매개변수를 표시합니다.
{
"notificationChannel": {
"id": 9,
"version": 2,
"type": "WEBHOOK",
"enabled": true,
"name": "test-tip-webhook",
"options": {
"notifyOnOk": false,
"url": "https://test-tip.endpoint.com",
"notifyOnResolve": true
}
}
}
요청 본문 매개변수: GET 알림 채널에 지정된 모든 응답 본문 매개변수입니다. 다음은 제외합니다.
- createdOn
- modifiedOn
참고: 알림 버전은 notificationChannels API의 응답 본문을 통해 받을 수 있습니다. 사용자는 요구 사항에 따라 알림에 ' customHeaders & customData '을 추가할 수도 있습니다.
알림 스키마: 요청 본문
하나 이상의 알림 채널에 대한 정보를 가져오려면 다음 스키마를 참조하십시오.
{
"notificationChannel": {
"id": 20,
"version": 1,
"type": "",
"enabled": true,
"name": "",
"options": {
"notifyOnOk": false,
"notifyOnResolve": true,
"resolveOnOk": true,
"channel": "",
"emailRecipients": "",
"url" : "",
"apiKey": "",
"routingKey": "",
"account": "",
"serviceKey": "",
"serviceName": ""
}
}
}
알림 채널을 작성하거나 업데이트하거나 삭제하는 경우 다음 스키마를 참조하십시오.
{
"notificationChannel": {
"id": 20,
"version": 1,
"type": "",
"enabled": true,
"name": "",
"options": {
"notifyOnOk": false,
"notifyOnResolve": true,
"resolveOnOk": true,
"channel": "",
"emailRecipients": "",
"url" : "",
"apiKey": "",
"routingKey": "",
"account": "",
"serviceKey": "",
"serviceName": ""
}
}
}
알림 스키마: 응답 본문
{
"notificationChannel": {
"id": 20,
"version": 1,
"createdOn": 1466023669000,
"modifiedOn": 1466023669000,
"type": "",
"enabled": true,
"name": "",
"options": {
"notifyOnOk": false,
"notifyOnResolve": true,
"resolveOnOk": true,
"channel": "",
"emailRecipients": "",
"url" : "",
"apiKey": "",
"routingKey": "",
"account": "",
"serviceKey": "",
"serviceName": ""
}
}
}
본문 매개변수
id(정수)
알림 채널의 ID입니다.
createdOn(정수)
알림의 작성 시간(밀리초)을 정의합니다.
이 매개변수는 알림이 작성될 때 Unix 시간소인을 리턴합니다.
description(문자열)
이 매개변수는 알림에 대해 설명합니다.
설명은 모니터링 UI의 알림 섹션에서 알림을 볼 때 제공되며 알림 이메일에 포함됩니다.
enabled(부울)
알림 채널의 상태를 정의합니다.
알림 채널이 이벤트 전송에 사용되고 알림이 트리거되는 시점을 알리는 경우 이 매개변수를 true로 설정하십시오.
알림 이벤트를 전송할 수 없도록 알림 채널을 사용 안함으로 설정하려며 false로 설정하십시오.
name(문자열)
알림의 이름입니다. 고유해야 합니다.
알림 채널의 이름은 고유해야 하며 255자 이하여야 합니다.
modifiedOn(정수)
알림이 마지막으로 수정된 시기(밀리초)를 정의합니다.
이 매개변수는 알림이 마지막으로 수정된 Unix 시간소인을 정의합니다.
옵션(json)
옵션은 알림 채널의 유형에 따라 다릅니다.
다음 JSON은 스키마 모델을 표시합니다.
"options": {
"notifyOnOk": false,
"notifyOnResolve": true,
"resolveOnOk": true,
"channel": "",
"emailRecipients": "",
"url" : "",
"apiKey": "",
"routingKey": "",
"account": "",
"serviceKey": "",
"serviceName": ""
}
| 옵션 | EMAIL |
PAGER_DUTY |
SLACK |
VICTOROPS |
WEBHOOK |
OPSGENIE |
|---|---|---|---|---|---|---|
name |
||||||
notifyOnOk |
||||||
notifyOnResolve |
||||||
resolveOnOk |
||||||
emailRecipients |
||||||
url |
||||||
apiKey |
||||||
routingKey |
||||||
account |
||||||
serviceKey |
||||||
serviceName |
apiKey(문자열)
VictorOps의 API 키입니다. VictorOps 통합 설정 페이지에서 이 키를 가져와야 합니다.
channel(문자열)
채널의 이름입니다.
emailRecipients(문자열)
이메일 주소의 목록입니다.
notifyOnOk(부울)
알림 상태가 ACTIVE에서 OK로 변경되고 사용자가 직접 알림을 수신확인하는 경우 알림을 전송하는 상태를 표시하는 플래그입니다.
알림을 전송하려면 true로 설정하십시오.
notifyOnResolve(부울)
알림 상태가 ACTIVE에서 OK로 변경되고 조건이 분석되기 때문에 더 이상 트리거되지 않으며 사용자가 직접 알림을 분석됨으로 변경하는 경우 알림을 전송하는 상태를 표시하는 플래그입니다.
알림을 전송하려면 true로 설정하십시오.
resolveOnOk(부울)
알림 상태가 ACTIVE에서 OK로 변경되고 조건이 분석되기 때문에 더 이상 트리거되지 않는 경우 알림을 전송하는 상태를 표시하는 플래그입니다.
알림을 전송하려면 true로 설정하십시오.
routingKey(문자열)
VictorOps의 라우팅 키입니다. VictorOps 통합 설정 페이지에서 이 키를 가져와야 합니다.
url(문자열)
URL 엔드포인트입니다.
유형
알림 채널을 정의합니다.
| 알림 유형 | 값 |
|---|---|
| 이메일 | EMAIL |
| PagerDuty | PAGER_DUTY |
| Slack | SLACK |
| VictorOps | VICTOROPS |
| 웹훅 | WEBHOOK |
| OpsGenie | OPSGENIE |
version(정수)
알림 버전입니다.
알림을 업데이트할 때마다 버전이 변경됩니다.
버전은 낙관적 잠금에 사용됩니다.
조회 매개변수
notificationId(정수)
알림 ID입니다.
from(long)
정의된 알림에 대한 정보를 요청할 때 사용되는 시작 시간소인(마이크로초)을 정의합니다.
to(long)
정의된 알림에 대한 정보를 요청할 때 사용되는 종료 시간소인(마이크로초)을 정의합니다.