Atlas를 구성하여 프로그래밍 처리를 위해 HTTP POST 요청으로 웹훅 엔드포인트에 경고 알림을 보낼 수 있습니다. 웹훅을 사용하면 Atlas 경고를 사용자 지정 모니터링 시스템, 사고 관리 플랫폼 또는 자동화 워크플로우와 통합할 수 있습니다.
필요한 액세스 권한
Atlas를 웹훅과 통합하려면 프로젝트에 대한 Organization Owner 또는 Project Owner 액세스 권한이 있어야 합니다.
웹훅 통합 구성
Atlas 에서 Project Settings 페이지로 이동합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.
사이드바에서 아이콘을 Project Overview 옆에 있는 클릭합니다.
프로젝트 설정 페이지가 표시됩니다.
(선택 사항) 웹훅 템플릿을 사용자 지정합니다.
FreeMarker 템플릿을 사용하여 요청 헤더와 본문 내용을 사용자 지정할 수 있습니다.
Webhook Headers Template 필드에 FreeMarker 템플릿을 입력하여 웹훅 요청과 함께 전송되는 HTTP 헤더를 사용자 지정합니다.
Webhook Body Template 필드에 FreeMarker 템플릿을 입력하여 요청 보디 구조를 사용자 지정합니다.
템플릿을 구성한 후 웹훅 통합을 보거나 편집하면 템플릿이 ******으로 삭제된 상태로 표시됩니다. 삭제된 템플릿을 새 값으로 재정의할 수 있습니다.
Atlas는 구성을 저장할 때 FreeMarker 구문의 유효성을 검사합니다. 템플릿에 유효하지 않은 구문이 포함되어 있으면 인라인 유효성 검사 오류가 폼에 표시됩니다.
웹혹으로 경고를 보내려면 경고 알림을 구성합니다. 자세한 학습은 경고 설정 구성을 참조하세요.
요청 헤더
Atlas는 각 웹훅 요청에 다음의 HTTP 헤더를 포함합니다.
헤더 | 설명 |
|---|---|
| 경고 상태를 나타냅니다. 가능한 값:
|
| (선택 사항) Webhook Secret 필드에 시크릿을 지정하면 Atlas가 이 헤더를 포함합니다. 요청 본문의 Base64인코딩 HMAC-SHA-1 서명이 포함되어 있습니다. Atlas는 제공된 시크릿을 사용하여 서명을 생성합니다. 이 헤더를 사용하여 웹훅 요청이 Atlas에서 시작되었는지 확인합니다. |
요청 본문
요청 본문에는 Atlas Administration API 경고 리소스 와 동일한 형식을 사용하는 JSON문서가 포함되어 있습니다. 페이로드에는 다음과 같은 주요 필드가 포함됩니다.
id: 경고의 고유 식별자입니다.eventTypeName경고를 트리거하는 이벤트 유형입니다.created경고가 생성된 시간입니다.status경고의 현재 상태(예:OPEN,CLOSED).humanReadable사람이 읽을 수 있는 경고에 대한 설명입니다. 이 필드에는 "프로젝트: [프로젝트 이름] 조직: [조직 이름]" 형식의 프로젝트 이름과 조직 이름 및 기타 경고 세부 정보가 포함되어 있습니다.
필드의 완전한 목록은 Atlas Administration API 모든 프로젝트 경고 가져오기 문서를 참조하십시오.
예시 웹훅 페이로드
다음 예시는 디스크 공간 경고에 대한 샘플 웹훅 페이로드를 보여줍니다.
{ "id": "5d1b6f8e8c2e4e2d3c4a5b6c", "groupId": "5d1b6f8e8c2e4e2d3c4a5b6d", "eventTypeName": "OUTSIDE_METRIC_THRESHOLD", "status": "OPEN", "created": "2024-01-15T10:30:00Z", "updated": "2024-01-15T10:30:00Z", "lastNotified": "2024-01-15T10:30:00Z", "humanReadable": "Disk space used on data partition is 95.2%. Project: MyProject Organization: MyOrganization", "metricName": "DISK_PARTITION_SPACE_USED_DATA", "currentValue": { "number": 95.2, "units": "RAW" } }
웹훅 요청 인증
Webhook Secret 필드에는 Atlas가 요청 확인을 위한 X-MMS-Signature 헤더를 생성하는 데에만 사용하는 비밀이 저장됩니다. Atlas는 비밀을 인증 헤더 또는 Bearer token으로 직접 보내지 않습니다.
웹훅 엔드포인트에 인증이 필요한 경우 다음 방법 중 하나를 사용하여 독립적으로 처리해야 합니다.
쿼리 매개변수: Webhook URL 에 인증 자격 증명을 쿼리 매개변수로 포함합니다. 예:
https://example.com/webhook?token=your-auth-tokenIP 액세스 목록: 웹훅 엔드포인트가 Atlas IP 주소에서만 요청을 수락하도록 구성합니다. 이 구성을 통해 Atlas만이 엔드포인트에 요청을 보낼 수 있습니다.
역리 프록시 또는 API 게이트웨이: 웹훅 엔드포인트로 요청을 전송하기 전에 인증을 처리하는 역리 프록시 또는 API 게이트웨이를 사용합니다.
웹훅 요청 확인
웹훅 요청이 Atlas에서 시작되었는지 확인하려면 X-MMS-Signature 헤더를 검증합니다.
제한 사항
webhook 통합을 사용할 때 다음 제한 사항을 고려합니다.
경고 심각도 미포함
웹훅 페이로드에는 Atlas에서 구성하는 경고 심각도 수준이 포함되지 않습니다. 구성된 심각도를 조회하려면 웹훅 페이로드의 alertConfigId 을 사용하여 Atlas Administration API 경고 구성 하나 가져오기 엔드포인트로 추가 호출을 수행하세요.
수동 테스트 경고 없음
Atlas는 테스트 경고를 수동으로 trigger할 수 있는 방법을 제공하지 않습니다. webhook 엔드포인트를 테스트하려면 일시적으로 다음과 같이 trigger하기 쉴운 조건을 갖는 경고를 설정할 수 있습니다.
테스트 클러스터의 낮은 디스크 공간 임계값.
여러 연결을 열어 trigger할 수 있는 연결 카운트 임계값입니다.
테스트 복제본 세트의 복제 지연 임계값.
웹훅이 경고를 정상적으로 수신하는 것을 확인한 후 테스트 경고 구성을 삭제할 수 있습니다.
방화벽 구성
방화벽에서 IP 액세스 목록을 구성해야 하는 경우 Atlas가 웹훅 엔드포인트와 통신할 수 있도록 Atlas IP 주소 에서의 액세스를 허용하세요.
웹훅 전달 문제 해결
웹훅이 경고를 수신하지 않은 경우: