생성(이 API는 2025-12-30에 폐기됩니다. v2 API 사용을 권장합니다)¶
POST /api/v1/alert_policy/add
개요¶
알림 정책을 생성합니다.
Body 요청 파라미터¶
| 파라미터명 | 유형 | 필수 | 설명 |
|---|---|---|---|
| name | string | Y | 알림 정책명 비워 둘 수 없음: False |
| desc | string | 설명 비워 둘 수 없음: False 빈 문자열 허용: True 최대 길이: 256 |
|
| openPermissionSet | boolean | 사용자 지정 권한 구성 활성화 (기본값 false: 비활성화). 활성화 시 해당 규칙의 작업 권한은 permissionSet에 따름 비워 둘 수 없음: False |
|
| permissionSet | array | 작업 권한 구성. (역할(소유자 제외), 구성원 UUID, 팀 UUID) 설정 가능 예시: ['wsAdmin', 'acnt_xxxx', 'group_yyyy'] 비워 둘 수 없음: False |
|
| ruleTimezone | str | Y | 알림 정책 시간대 예시: Asia/Shanghai 비워 둘 수 없음: False |
| alertOpt | json | 알림 설정 비워 둘 수 없음: False |
|
| alertOpt.alertType | string | 알림 정책 알림 유형, 등급(status)/구성원(member), 기본값은 등급 비워 둘 수 없음: False 선택 값: ['status', 'member'] |
|
| alertOpt.alertTarget | array | 트리거 동작, 트리거 시간 및 파라미터 처리에 주의 예시: [{'name': '알림 구성1', 'targets': [{'to': ['acnt_xxxx32'], 'status': 'critical', 'tags': {'pod_name': ['coredns-7769b554cf-w95fk']}, 'upgradeTargets': [{'to': ['acnt_xxxx32'], 'duration': 600}, {'to': ['group_xxxx32'], 'duration': 6000}]}], 'crontabDuration': 600, 'crontab': '0 9 * * 0,1,2,3,4'}, {'name': '알림 구성2', 'targets': [{'status': 'error', 'to': ['group_xxxx32'], 'upgradeTargets': [{'to': ['acnt_xxxx32'], 'duration': 600}, {'to': ['group_xxxx32'], 'duration': 6000}]}], 'customDateUUIDs': ['ndate_xxxx32'], 'customStartTime': '09:30:10', 'crontabDuration': 600}] 비워 둘 수 없음: False |
|
| alertOpt.silentTimeout | integer | 중복 알림 구성 비워 둘 수 없음: False |
|
| alertOpt.silentTimeoutByStatusEnable | boolean | 등급별 중복 알림 설정 활성화 여부, 기본값 false, silentTimeout 사용 비워 둘 수 없음: False |
|
| alertOpt.silentTimeoutByStatus | array | 등급별 중복 알림 설정, 등급별 최소 알림 간격 구성 비워 둘 수 없음: False |
|
| alertOpt.aggInterval | integer | Y | 알림 집계 간격, 단위 초, 0은 집계 안 함 비워 둘 수 없음: False $minValue: 0 $maxValue: 1800 |
| alertOpt.aggFields | array | 집계 필드 목록. 빈 목록[]은 '집계 규칙: 전체'를 의미. df_monitor_checker_id: 모니터/지능형 점검/SLO, df_dimension_tags: 감지 차원, df_label: 태그, CLUSTER: 지능형 집계 예시: ['CLUSTER'] 비워 둘 수 없음: False |
|
| alertOpt.aggLabels | array | 태그별 집계 시 태그 값 목록. aggFields에 df_label이 지정된 경우에만 적용 비워 둘 수 없음: False |
|
| alertOpt.aggClusterFields | array | 지능형 집계 시 필드 목록. aggFields에 CLUSTER가 지정된 경우에만 적용. 선택 값 "df_title": 제목, "df_message": 내용 예시: ['df_title'] 비워 둘 수 없음: False |
파라미터 보충 설명¶
데이터 설명
1. alertOpt 파라미터 설명
| 파라미터명 | type | 필수 | 설명 |
|---|---|---|---|
| name | string | 필수 | 규칙명 |
| desc | string | 설명 | |
| type | string | 필수 | 검사기 유형 |
| ruleTimezone | string | 필수 | 알림 정책 시간대 (2024-01-31 반복 신규 파라미터) |
| alertOpt | Dict | 필수 | 알림 설정 |
| alertOpt.silentTimeout | integer | 최소 알림 간격. 동일 알림을 일정 시간 동안 재전송하지 않음(알림 음소거 시간), 단위 초, 0/null은 한 번만 알림 전송(간격 무한대) | |
| alertOpt.silentTimeoutByStatusEnable | boolean | 등급별 중복 알림 설정 활성화 여부 | |
| alertOpt.silentTimeoutByStatus | array | 등급별 최소 알림 간격, 단위 초. 보안 점검 등급은 security_ 접두사 사용 |
|
| alertOpt.aggInterval | integer | 알림 집계 간격, 단위 초, 0은 집계 안 함, 범위[0,1800] | |
| alertOpt.aggFields | array | 집계 필드 목록. 빈 목록[]은 '집계 규칙: 전체'를 의미. df_monitor_checker_id: 모니터/지능형 점검/SLO, df_dimension_tags: 감지 차원, df_label: 태그, CLUSTER: 지능형 집계 | |
| alertOpt.aggLabels | array | 태그별 집계 시 태그 값 목록. aggFields에 df_label이 지정된 경우에만 적용 | |
| alertOpt.aggClusterFields | array | 지능형 집계 시 필드 목록. aggFields에 CLUSTER가 지정된 경우에만 적용. 선택 값 "df_title": 제목, "df_message": 내용 | |
| alertOpt.alertTarget | Array[Dict] | 알림 동작 | |
| alertOpt.alertType | string | 알림 정책 알림 유형, 등급(status)/구성원(member), 기본값은 등급. 2024-11-06 반복 신규 | |
| openPermissionSet | boolean | 사용자 지정 권한 구성 활성화 여부, 기본값 false. 2024-11-06 반복 신규 | |
| permissionSet | array | 작업 권한 구성. 2024-11-06 반복 신규 |
2. 알림 정책이 등급 유형인 경우 alertOpt.alertTarget 파라미터 설명
| key | 유형 | 필수 | 설명 |
|---|---|---|---|
| alertTarget[#] | dict | alertTarget 목록 요소 | |
| alertTarget[#].name | string | 구성 이름 | |
| alertTarget[#].targets | Array[dict] | 필수 | 알림 대상 구성 (알림 정책 등급/구성원 유형에 따라 이 필드의 위치가 다름) |
| alertTarget[#].crontab | String | 반복 시간대 선택 시 시작 Crontab (Crontab 문법) | |
| alertTarget[#].crontabDuration | integer | 반복 시간 선택, Crontab 시작부터 지속 시간(초) | |
| alertTarget[#].customDateUUIDs | Array[String] | 사용자 지정 시간 선택 시 사용자 지정 알림 날짜의 UUID 목록, 예: ['ndate_xxxx32', 'ndate_xxxx32']. 사용자 지정 알림 날짜는 모니터링 - 알림 정책 - 사용자 지정 알림 날짜 API 참조 | |
| alertTarget[#].customStartTime | String | 사용자 지정 시간 선택 시 매일 시작 시간, 형식: HH |
|
| alertTarget[#].customDuration | integer | 사용자 지정 시간대 선택 시 customStartTime부터 지속 시간(초) |
3. 알림 정책이 구성원 유형인 경우 alertOpt.alertTarget 파라미터 설명
| key | 유형 | 필수 | 설명 |
|---|---|---|---|
| alertTarget[#] | dict | alertTarget 목록 요소 | |
| alertTarget[#].name | string | 구성 이름 | |
| alertTarget[#].crontab | String | 반복 시간대 선택 시 시작 Crontab (Crontab 문법) | |
| alertTarget[#].crontabDuration | integer | 반복 시간 선택, Crontab 시작부터 지속 시간(초) | |
| alertTarget[#].customDateUUIDs | Array[String] | 사용자 지정 시간 선택 시 사용자 지정 알림 날짜의 UUID 목록, 예: ['ndate_xxxx32', 'ndate_xxxx32']. 사용자 지정 알림 날짜는 모니터링 - 알림 정책 - 사용자 지정 알림 날짜 API 참조 | |
| alertTarget[#].customStartTime | String | 사용자 지정 시간 선택 시 매일 시작 시간, 형식: HH |
|
| alertTarget[#].customDuration | integer | 사용자 지정 시간대 선택 시 customStartTime부터 지속 시간(초) | |
| alertTarget[#].alertInfo | Array[dict] | 필수 | 구성원 유형 알림 정책의 알림 관련 정보 구성. 2024-11-27 반복 신규 |
4. 알림 정책이 구성원 유형인 경우 alertOpt.alertTarget.alertInfo 파라미터 설명
| key | 유형 | 필수 | 설명 |
|---|---|---|---|
| alertInfo[#] | dict | alertInfo 목록 요소 | |
| alertInfo[#].name | string | 구성 이름 | |
| alertInfo[#].targets | Array[dict] | 필수 | 알림 대상 구성 (알림 정책 등급/구성원 유형에 따라 이 필드의 위치가 다름) |
| alertInfo[#].filterString | string | alertType이 member인 경우 사용. 필터 조건 원본 문자열. 2024-11-27 반복 신규 | |
| alertInfo[#].memberInfo | array | alertType이 member인 경우 사용(팀 UUID, 구성원 UUID). 예: [group_xxxx,acnt_xxxx]. 2024-11-27 반복 신규 |
5. 시간 구성 관련 설명
반복 시간대를 선택한 경우 crontab, crontabDuration 필드는 필수 파라미터
사용자 지정 시간대를 선택한 경우 customDateUUIDs, customDuration, customStartTime 필드는 필수 파라미터
기타 시간을 선택한 경우 crontab, crontabDuration, customDateUUIDs, customStartTime, customDuration 모두 전송 불필요
참고: 각 알림 정책에는 기타 시간에 대한 알림 규칙이 하나씩 존재합니다. 즉, 시간 구성이 없는 것은 폴백 알림 대상입니다.
6. 알림 대상 필드 targets 설명
alertType이 status인 경우, targets 위치: alertOpt.alertTarget.targets
alertType이 member인 경우, targets 위치: alertOpt.alertTarget.alertInfo.targets
targets는 list이며, 내부 요소는 dict입니다. 내부 필드 설명은 다음과 같습니다.
| key | 유형 | 필수 | 설명 |
|---|---|---|---|
| to | Array[String] | 필수 | 알림 대상/구성원/팀, 예시: [group_xxxx,acnt_xxxx,notify_xxxx]. (alertType이 member인 경우 알림 대상과 고정 필드 email, sms(SaaS 버전은 sms 지원)만 선택 가능, 예시: [email,notify_xxxx]. 2024-11-06 반복 신규) |
| status | Enum | 필수 | 알림을 전송해야 하는 event의 status 값(여러 status는 쉼표로 구분, All은 전체 의미). 보안 점검 유형이 아닌 status 값: fatal, critical, error, warning, nodata, info. 보안 점검 유형의 status 값: critical, high, medium, low, info (2025-05-14 반복 신규 보안 점검 열거형 값) |
| df_source | Enum | status가 보안 점검의 status여야 하는 경우 df_source를 security로 지정해야 함. 기본값 미전달 시 보안 점검 status가 아님을 의미 (2025-05-14 반복 신규) | |
| upgradeTargets | Array | 각 알림 구성 상태의 에스컬레이션 알림 | |
| tags | dict | 필터 조건 | |
| filterString | dict | 필터 조건 원본 문자열. tags를 대체 가능. filterString 사용 우선순위가 tags보다 높음. 2024-11-27 반복 신규 |
7. 알림 대상 필드 upgradeTargets 설명
alertType이 status인 경우, targets 위치: alertOpt.alertTarget.targets.upgradeTargets
alertType이 member인 경우, targets 위치: alertOpt.alertTarget.alertInfo.targets.upgradeTargets
upgradeTargets는 list이며, 내부 요소는 dict입니다. 내부 필드 설명은 다음과 같습니다.
| key | 유형 | 필수 | 설명 |
|---|---|---|---|
| to | Array[String] | 필수 | 알림 대상/구성원/팀, 예시: [group_xxxx,acnt_xxxx,notify_xxxx]. (alertType이 member인 경우 구성원과 팀만 선택 가능. 2024-11-06 반복 신규) |
| duration | integer | 지속 시간. 해당 수준의 상태 이벤트가 지속적으로 발생하면 에스컬레이션 알림 트리거 | |
| toWay | Array[String] | alertType이 구성원(member) 유형인 경우 사용. 알림 대상과 고정 필드 email, sms(SaaS 버전은 sms 지원)만 선택 가능. 예시: [email,notify_xxxx]. 2024-11-06 반복 신규 |
8. 작업 권한 구성 파라미터 설명
| 파라미터명 | type | 설명 |
|---|---|---|
| openPermissionSet | boolean | 사용자 지정 권한 구성 활성화 여부, 기본값 false |
| permissionSet | array | 작업 권한 구성 |
**permissionSet, openPermissionSet 필드 설명(2024-06-26 반복 신규 필드): **
openPermissionSet을 활성화하면 공간 소유자와 permissionSet에 구성된 역할, 팀, 구성원만 편집/활성화/비활성화/삭제 가능
openPermissionSet을 비활성화하면(기본값) 삭제/활성화/비활성화/편집 권한은 기존 인터페이스의 편집/활성화/비활성화/삭제 권한을 따름
permissionSet 필드 설정 가능: 역할 UUID(wsAdmin, general, readOnly, role_xxxxx), 팀 UUID(group_yyyy), 구성원 UUID(acnt_xxx) permissionSet 필드 예시:
9. alertOpt[#].silentTimeoutByStatus 파라미터 설명
| 파라미터명 | type | 설명 |
|---|---|---|
| silentTimeoutByStatus[#] | dict | silentTimeoutByStatus 목록 요소 |
| silentTimeoutByStatus[#].status | boolean | 보안 점검 유형이 아닌 status 값: fatal, critical, error, warning, nodata, info. 보안 점검 유형의 status 값: security_critical, security_high, security_medium, security_low, security_info |
| silentTimeoutByStatus[#].silentTimeout | integer | 최소 알림 간격. 동일 알림을 일정 시간 동안 재전송하지 않음(알림 음소거 시간), 단위 초, 0/null은 한 번만 알림 전송(간격 무한대) |
silentTimeoutByStatus 필드 예시:
[
{
"status": "fatal",
"silentTimeout": 600
},
{
"status": "critical,error",
"silentTimeout": 900
},
{
"status": "security_high",
"silentTimeout": 600
},
]
요청 예시¶
curl 'https://openapi.guance.com/api/v1/alert_policy/add' \
-H 'DF-API-KEY: <DF-API-KEY>' \
-H 'Content-Type: application/json;charset=UTF-8' \
--data-raw '{"name":"jj_test","ruleTimezone":"Asia/Shanghai","alertOpt":{"alertTarget":[{"name":"Notification Configuration1","targets":[{"status":"critical","tags":{"pod_name":["coredns-7769b554cf-w95fk"]},"to":["acnt_xxxx32"]}],"crontabDuration":600,"crontab":"0 9 * * 0,1,2,3,4"},{"name":"Notification Configuration2","targets":[{"status":"error","to":["group_xxxx32"]}],"customDateUUIDs":["ndate_xxxx32"],"customStartTime":"09:30:10","customDuration":600},{"targets":[{"status":"warning","to":["notify_xxxx32"]}]}],"silentTimeout":21600,"aggInterval":120,"aggFields":["df_monitor_checker_id"]}}' \
--compressed
응답¶
{
"code": 200,
"content": {
"alertOpt": {
"aggFields": [
"df_monitor_checker_id"
],
"aggInterval": 120,
"alertTarget": [
{
"crontab": "0 9 * * 0,1,2,3,4",
"crontabDuration": 600,
"name": "Notification Configuration1",
"targets": [
{
"status": "critical",
"tags": {
"pod_name": [
"coredns-7769b554cf-w95fk"
]
},
"to": [
"acnt_xxxx32"
]
}
]
},
{
"customDateUUIDs": [
"ndate_xxxx32"
],
"customDuration": 600,
"customStartTime": "09:30:10",
"name": "Notification Configuration2",
"targets": [
{
"status": "error",
"to": [
"group_xxxx32"
]
}
]
},
{
"targets": [
{
"status": "warning",
"to": [
"notify_xxxx32"
]
}
]
}
],
"silentTimeout": 21600
},
"createAt": 1719373984,
"creator": "wsak_xxxx32",
"declaration": {
"asd": "aa,bb,cc,1,True",
"asdasd": "dawdawd",
"business": "aaa",
"fawf": "afawf",
"organization": "64fe7b4062f74d0007b46676"
},
"deleteAt": -1,
"id": null,
"name": "jj_test",
"ruleTimezone": "Asia/Shanghai",
"score": 0,
"status": 0,
"updateAt": 1719373984,
"updator": "wsak_xxxx32",
"uuid": "altpl_xxxx32",
"workspaceUUID": "wksp_xxxx32"
},
"errorCode": "",
"message": "",
"success": true,
"traceId": "TRACE-148B6846-6180-4594-BD26-8A2077F0E911"
}