Atlas 모니터링 및 경고에 대한 지침
이 페이지의 내용
MongoDB Atlas는 Atlas에서 활용하거나 타사 관찰 가능성 및 경고 스택에 통합할 수 있는 강력한 내장 지표, 원격 측정 및 로그 세트를 제공합니다. 이를 통해 Atlas 배포를 모니터링하고 관리하며 문제 발생 시 선제적으로 실시간 대응이 가능합니다.
배포서버 모니터링하면 다음을 수행할 수 있습니다.
클러스터 상태 및 현황 파악
클러스터 에서 실행 작업이 데이터베이스 어떤 영향을 미치는지 알아보세요.
hardware 리소스 제한된지 알아보기
워크로드 및 쿼리 최적화 수행
실시간으로 문제를 감지하고 대응하여 애플리케이션 스택 개선
Atlas는 모니터링 및 경고를 위한 여러 가지 지표를 제공합니다. 시각적 대시보드와 API를 통해 배포의 상태, 가용성, 사용량 및 성능을 추적할 수 있습니다. 다양한 클러스터 지표를 확인하고 데이터베이스 성능을 모니터링할 수 있습니다. 또한 경고 및 알림을 설정하고 활동 로그를 다운로드할 수도 있습니다.
Atlas 모니터링 및 경고 기능
지표 | 배포 지표 hardware 성능 및 데이터베이스 운영 효율성 에 대한 인사이트 제공합니다. Atlas 서버, 데이터베이스 및 MongoDB 에 대한 지표 수집하고 다양한 세분성 수준에서 지표 데이터를 처리하고 저장합니다. Atlas 각 세분성 수준에 대해 다음으로 세분화된 수준에서 보고된 지표 의 평균으로 지표 계산합니다. 많은 지표 에는 버스트 보고 기능이 있습니다. Atlas UI 에서 지표 보기, 실시간 성능 패널, 쿼리 프로파일러, Performance Advisor 및 네임스페이스 인사이트 페이지를 사용하여 지표 모니터 할 수 있습니다. Atlas CLI 또는 Atlas 관리 API 사용하여 원하는 도구에 지표 집중할 수도 있습니다. 다음 Atlas UI 지표 보기는 샘플 3노드 복제본 세트 에 대해 모니터 할 수 있는 다양한 지표 를 보여줍니다. ![]() 클릭하여 확대 |
알림 | Atlas는 200건 이상의 이벤트 유형에 대한 경고를 제공하여 정밀한 모니터링을 위한 경고를 맞춤 설정할 수 있습니다. Atlas는 경고 설정에서 구성한 데이터베이스 및 서버 조건에 대한 경고를 발송합니다. 조건이 경고를 트리거하면 Atlas는 클러스터에 경고 기호를 표시하고 경고 알림을 보냅니다. Atlas UI, Atlas 관리 API, Atlas CLI 및 통합 Terraform 리소스 사용하여 경고 및 경고 알림을 구성할 수 있습니다. |
모니터링 | Atlas 모니터링 시각화는 hardware 성능 및 데이터베이스 운영 효율성 포함한 다양한 주요 지표 에 대한 인사이트를 제공합니다. 네트워크 및 운영 가시성을 위한 실시간 성능 패널, 효율성 추세 추적을 위한 쿼리 프로파일러, 자동 인덱스 제안과 같은 도구를 사용하면 문제를 보다 효과적으로 모니터 하고 해결하여 운영 효율성 높일 수 있습니다. 예시 를 들어, 이 차트는 서버 다시 시작 및 투표가 데이터베이스 성능에 영향 이해하는 데 도움이 될 수 있습니다. |
로그 | Atlas 클러스터 의 각 프로세스 에 대한 로그를 제공합니다. 각 프로세스 자체 로그 파일 에 활동 계정을 보관합니다. Atlas UI, Atlas CLI 및 Atlas 관리 API 사용하여 로그를 다운로드 할 수 있습니다. 자세한 학습 은 Atlas 감사 및 로깅 지침을 참조하세요. |
Atlas 모니터링 및 경고에 대한 권장 사항
지표를 사용한 모니터링
클러스터 또는 데이터베이스 성능을 모니터링하려면 과거 처리량, 성능 및 활용도 지표와 같은 클러스터 지표를 확인할 수 있습니다. 다음 표는 모니터링할 중요한 지표 범주를 나열합니다.
Atlas 클러스터 작업 및 연결 지표 |
|
하드웨어 지표 |
|
복제 메트릭 |
|
Atlas UI, Atlas 관리 API 및 Atlas CLI 사용하여 Atlas cluster 지표 볼 수 있습니다. 또한 Atlas Datadog 및 Prometheus와 같은 타사 도구와의 내장 통합 기능을 제공하며, Atlas 관리 API 활용하여 다른 사용자 지정 지표 도구와 통합할 수도 있습니다.
경고 구성을 통한 모니터링
Atlas는 기존 관찰 가능성 스택으로 확장되므로 현재 도구를 교체하거나 워크플로를 변경하지 않고도 경고를 받고 데이터 기반 결정을 내릴 수 있습니다. Atlas는 Microsoft Teams, PagerDuty, DataDog, Prometheus, Opsgenie, Splunk On-Call 등의 타사 도구와 함께 경고 알림을 보내어 데이터베이스 및 전체 스택 성능을 한 곳에서 확인할 수 있도록 해줍니다.
로그인 시도 실패, 비정상적인 액세스 패턴, 데이터 유출과 같은 보안 이벤트에 대한 경고 및 알림 구성합니다. 개발 및 테스트 환경에서는 비용을 절약하기 위해 7일 동안 활동이 없으면 클러스터에 경고를 구성하는 것이 좋습니다.
Atlas UI 에서 경고를 볼 때는 사용 가능한 필터를 사용하여 가장 중요한 경고에 집중할 수 있도록 호스팅하다, 복제본 세트, 클러스터, 샤드 등으로 결과를 제한하는 것이 좋습니다.
권장 Atlas 경고 구성
최소한 다음 경고를 구성하는 것이 좋습니다. 이러한 경고 권장 사항은 기준을 제공하지만 워크로드 특성에 따라 조정해야 합니다. 다음 표에 ' 우선 순위 높은' 조건이 지정된 경우 동일한 조건에 대해 우선 순위 순위가 낮은 심각도에 대해 경고, 우선 순위 순위가 높은 심각도에 대해 경고를 각각 하나씩 여러 개 구성하는 것이 좋습니다. 이를 통해 각각에 대해 개별적으로 경고 알림 설정을 구성할 수 있습니다.
조건 | 권장 경고 임계값: 낮은 우선순위 | 권장 경고 임계값: 높은 우선 순위 | 주요 인사이트 |
---|---|---|---|
Oplog 윈도우 (oplog window) | 5분 동안 5시간 미만 | 10분 동안 10시간 미만 | 복제 oplog window를 복제 헤드룸과 함께 모니터링하여 세컨더리 서버에 전체 재동기화가 필요한지 여부를 확인합니다. 복제 oplog window는 계획된 장애와 계획되지 않은 장애에 대한 세컨더리 시스템의 복원력을 미리 파악하는 데 도움이 되는 경우가 많습니다. |
투표 이벤트 | > 5 분 동안 3 | > 5 분 동안 30 | 프라이머리 노드가 중단되고 새 프라이머리로 세컨더리 노드가 선출될 때 발생하는 투표 이벤트를 모니터링합니다. 잦은 투표 이벤트는 운영을 방해하고 가용성에 영향을 미쳐 일시적인 쓰기 불가 상태와 데이터 롤백 가능성을 초래할 수 있습니다. 투표 이벤트를 최소화하면 일관된 쓰기 작업과 안정적인 클러스터 성능을 보장할 수 있습니다. |
읽기 IOPS | > 2 분 동안 4000 | > 5 분 동안 9000 | 디스크 IOPS가 프로비저닝된 최대 IOPS에 근접하는지 모니터링합니다. 클러스터가 향후 워크로드를 처리할 수 있는지 여부를 결정합니다. |
쓰기 IOPS | > 2 분 동안 4000 | > 5 분 동안 9000 | 디스크 IOPS가 프로비저닝된 최대 IOPS에 근접하는지 모니터링합니다. 클러스터가 향후 워크로드를 처리할 수 있는지 여부를 결정합니다. |
읽기 지연 시간 | 5분 동안 20ms 초과 | > 5 분 동안 50 초 | 디스크 대기 시간을 모니터링하여 디스크 읽기 및 쓰기 효율성을 추적합니다. |
쓰기 지연 시간 | 5분 동안 20ms 초과 | 5분 이상 동안 50ms 초과 | 디스크 대기 시간을 모니터링하여 디스크 읽기 및 쓰기 효율성을 추적합니다. |
스왑 사용 | > 15 분 동안 2GB | > 15 분 동안 2GB | 메모리를 모니터링하여 상위 클러스터 계층으로 업그레이드할지 여부를 결정합니다. 이 메트릭은 메트릭 간격에 지정된 기간 동안의 평균값을 나타냅니다. |
호스트 다운 | 15 분 | 24시간 | 호스트를 모니터링하여 다운타임을 즉시 감지합니다. 호스팅하다 15 분 이상 다운되면 가용성 영향 수 있으며, 24 시간을 초과하는 다운타임은 매우 중요하여 데이터 접근성과 애플리케이션 성능을 위험에 빠뜨릴 수 있습니다. |
프라이머리 없음 | 5분 | 5분 | 복제본 세트의 상태를 모니터링하여 프라이머리 노드 없는 인스턴스를 식별합니다. 5 분 이상 프라이머리 부족하면 쓰기 (write) 작업이 중지되고 애플리케이션 기능에 영향 수 있습니다. |
누락된 활성 | 15 분 | 15 분 | 활성 |
페이지 오류 | 5분 동안 초당 50 초과 | 5분 동안 초당 100 초과 | 페이지 오류를 모니터링하여 메모리를 늘릴지 여부를 결정합니다. 이 지표는 선택한 샘플 기간 동안 이 프로세스 의 초당 평균 페이지 오류 비율을 표시합니다. Windows가 아닌 환경에서는 이는 하드 페이지 오류에만 적용됩니다. |
복제 지연 | > 5 분 동안 240 초 | 5분 동안 1시간 초과 | 복제 지연을 모니터링하여 세컨더리가 oplog에서 벗어날 가능성이 있는지 확인합니다. |
백업 실패 | 모든 발생 | none | 백업 작업을 추적하여 데이터 무결성을 보장합니다. 백업 실패하면 데이터 가용성이 손상될 수 있습니다. |
복원된 백업 | 모든 발생 | none | 복원된 백업을 확인하여 데이터 무결성과 시스템 기능을 보장합니다. |
대체 스냅샷 실패 | 모든 발생 | none | 데이터 중복성과 복구 기능을 보장하기 위해 폴백 스냅샷 작업을 모니터링합니다. |
백업 일정 지연 | > 12 시간 | > 12 시간 | 백업 일정을 확인하여 추적 진행되고 있는지 확인합니다. 뒤처지면 데이터 손실 위험이 있고 복구 계획이 손상될 수 있습니다. |
대기 중인 읽기 | > 0-10 | > 10+ | 대기 중인 읽기를 모니터링하여 효율적인 데이터 검색을 보장합니다. 대기 중인 읽기 수준이 높으면 리소스 제약 또는 성능 병목 현상을 나타낼 수 있으므로 시스템 응답성을 유지하려면 최적화가 필요합니다. |
대기 중인 쓰기 | > 0-10 | > 10+ | 효율적인 데이터 처리를 유지하기 위해 대기 중인 쓰기를 모니터링합니다. 대기 중인 쓰기가 많으면 리소스 제약이나 성능 병목 현상을 나타낼 수 있으며 시스템 응답성을 유지하기 위해 최적화가 필요할 수 있습니다. |
지난 1시간 동안 재시작 | > 2 | > 2 | 지난 1시간 동안 재시작 횟수를 추적하여 불안정성 또는 구성 문제를 감지합니다. 자주 다시 시작하는 것은 시스템 안정성과 가동 시간을 유지하기 위해 즉각적인 조사가 필요한 기본 문제를 나타낼 수 있습니다. |
모든 발생 | none | 안정적인 클러스터 운영을 보장하기 위해 프라이머리 투표를 모니터링합니다. 투표가 빈번하다는 것은 네트워크 문제 또는 리소스 제약 조건을 나타내어 데이터베이스 의 가용성 및 성능에 잠재적으로 영향을 미칠 수 있습니다. | |
더 이상 유지 관리가 필요하지 않습니다. | 모든 발생 | none | 불필요한 유지 관리 작업을 검토하여 리소스를 최적화하고 중단을 최소화하세요. |
유지 관리 시작됨 | 모든 발생 | none | 계획된 활동이 원활하게 진행되도록 유지 관리 작업의 시작을 추적합니다. 적절한 감독은 유지 관리 중 시스템 성능을 유지하고 다운타임을 최소화하는 데 도움이 됩니다. |
유지 관리 예정 | 모든 발생 | none | 예정된 유지 관리를 모니터링하여 잠재적인 시스템 영향에 대비합니다. |
> 5 분 동안 5% | > 5 분 동안 20% | 버스트 가능 성능을 갖춘 AWS EC2 클러스터에서 CPU 도용(CPU Steal)을 모니터링하여 공유 코어로 인해 CPU 사용량이 보장된 기준선을 초과하는 시점을 식별합니다. 높은 도용 비율(Steal Percentages)은 CPU 크레딧 잔액이 소진되어 성능에 영향을 미치고 있음을 나타냅니다. | |
중앙처리장치 | > 5 분 동안 75% | > 5 분 동안 75% | CPU 사용량을 모니터링하여 데이터가 메모리 대신 디스크에서 검색되는지 여부를 확인합니다. |
디스크 파티션 사용량 | 90% 이상 | > 5 분 동안 95% | 디스크 파티션 사용량을 모니터링하여 충분한 저장 가용성을 보장합니다. 사용량 수준이 높으면 성능 저하 및 잠재적인 시스템 중단이 발생할 수 있습니다. |
자세한 학습 은 경고 구성 및 해결을 참조하세요.
Atlas 내장 도구를 사용한 모니터링
Atlas는 데이터베이스의 성능을 사전에 모니터링하고 개선할 수 있는 여러 도구를 제공합니다.
실시간 성능 패널
Atlas UI 의 실시간 성능 패널 (RTPP)은 Atlas UI 에서 1초 단위로 호스트에 대한 현재 네트워크 트래픽, 데이터베이스 작업 및 hardware 통계에 대한 인사이트를 제공합니다. 다음과 같은 경우에는 RTPP를 사용하는 것이 좋습니다.
관련 데이터베이스 작업을 시각적으로 식별
쿼리 실행 시간을 평가하다
스캔한 문서와 반환된 문서의 비율을 평가합니다.
네트워크 부하 및 처리량 모니터링
복제본 세트의 세컨더리 멤버에서 잠재적인 복제 지연 발견
작업이 완료되기 전에 작업을 종료하여 귀중한 리소스 확보
Atlas Administration API 에서는 RTPP를 모니터 할 수 없지만, Update One Project Settings(업데이트 프로젝트 설정)를 통해 Atlas Administration API 에서 RTPP를 활성화 및 비활성화할 수 있습니다.
자세한 내용은 실시간 성능 모니터링을 참조하세요.
Query 프로파일러
쿼리 프로파일러는 느린 쿼리와 병목 현상을 식별하고 데이터베이스 성능을 향상시키기 위해 인덱스 개선 및 쿼리 재구성을 제안합니다. Atlas UI에서 24시간 동안의 가장 느린 작업에 대한 가시성을 제공하여 쿼리 효율성의 추세와 이상치를 더 쉽게 식별할 수 있게 합니다. 이 데이터를 사용하여 성능이 저하된 쿼리를 정확히 찾아내고 문제를 해결하여 성능 오버헤드를 줄이는 것이 좋습니다.
쿼리 프로파일러 Return Slow Queries(느린 쿼리 반환)를 사용하여 Atlas 관리 API 에서 식별하는 느린 쿼리에 대한 로그 줄을 반환할 수 있습니다.
자세한 학습은 쿼리 프로파일러로 쿼리 성능 모니터링을참조하세요.
Performance Advisor
Performance Advisor는 실행 속도가 느린 쿼리에 대한 로그를 자동으로 분석하고 생성 및 삭제할 인덱스를 추천합니다. 느린 쿼리를 분석하고 개별 컬렉션에 대한 인덱스 제안을 제공하며 이는 계산된 영향 점수로 순위가 매겨지고 워크로드에 맞춰 조정됩니다. 이를 통해 고효율 성능 개선을 쉽고 즉각적으로 할 수 있습니다. 정기적으로 모니터링하고 느린 쿼리에 집중하며 오버헤드를 최소화하기 위해 프로파일러를 선택적으로 활성화할 것을 권장합니다.
Atlas UI, Atlas CLI 및 Atlas 관리 API 사용하여 Performance Advisor 에서 느린 쿼리와 쿼리 성능 개선을 위한 제안 사항을 확인할 수 있습니다.
Performance Advisor Return 느린 쿼리를 사용하여 Atlas 관리 API 에서 식별하는 느린 쿼리에 대한 로그 줄을 반환할 수 있습니다. Atlas 관리 API 사용하여 추천 인덱스 등을 반환하려면 Performance Advisor참조하세요.
자세한 내용은 느린 쿼리 모니터링 및 개선을 참조하세요.
네임스페이스 인사이트
Atlas UI의 네임스페이스 인사이트 페이지에서 컬렉션 수준의 성능 및 사용량 지표를 모니터링할 수 있습니다. 모니터링을 위해 고정한 컬렉션에 대해 특정 호스트 및 작업 유형의 지표(예: 컬렉션의 CRUD 작업 수)와 통계(예: 평균 쿼리 실행 시간)를 표시합니다. 이 기능을 통해 컬렉션 수준의 성능을 더 세밀하게 파악할 수 있습니다. 또한 이를 활용하여 데이터베이스 성능을 최적화하고 문제를 해결하며 확장, 인덱싱 및 쿼리 튜닝에 대한 결정을 내릴 수 있습니다.
로그를 사용한 모니터링
Atlas는 최근 30일간의 로그 메시지 및 시스템 이벤트 감사 메시지를 보관합니다. 보존 기간이 끝나기 전에 언제든 Atlas UI, Atlas API 및 Atlas CLI를 사용하여 Atlas 로그를 다운로드할 수 있습니다.
자세한 내용은 MongoDB 로그 보기 및 다운로드를 참조하세요.
AWS S3 버킷에 로그를 푸시할 수도 있습니다. 이 기능을 구성하면 Atlas는 mongod
, mongos
및 감사 로그를 AWS S3 버킷으로 지속적으로 전송합니다. Atlas는 5분마다 로그를 내보냅니다.
자동화 예시: Atlas 모니터링 및 로깅
모든 핵심 영역에 걸쳐 스테이징/프로덕션 권장 사항을 적용하는 Terraform 예시는 GitHub에서 확인할 수 있습니다.
다음 예시는 Atlas 자동화 도구를 사용하여 모니터링을 활성화하는 방법을 보여줍니다.
클러스터 지표 보기
다음 명령을 실행하여 지정된 디스크에서 사용된 공간과 남은 공간의 양을 조회합니다. 이 지표는 시스템의 여유 공간이 부족한지 여부를 확인하는 데 사용할 수 있습니다.
atlas metrics disks describe atlas-lnmtkm-shard-00-00.ajlj3.mongodb.net:27017 data \ --granularity P1D \ --period P1D \ --type DISK_PARTITION_SPACE_FREE,DISK_PARTITION_SPACE_USED \ --projectId 6698000acf48197e089e4085 \
경고 구성
배포서버 프라이머리 없는 경우 이메일 주소 로 경고 알림을 생성하려면 다음 명령을 실행합니다.
atlas alerts settings create \ --enabled \ --event "NO_PRIMARY" \ --matcherFieldName CLUSTER_NAME \ --matcherOperator EQUALS \ --matcherValue ftsTest \ --notificationType EMAIL \ --notificationEmailEnabled \ --notificationEmailAddress "myName@example.com" \ --notificationIntervalMin 5 \ --projectId 6698000acf48197e089e4085
데이터베이스 성능 모니터링
프로젝트에 대해 Atlas에서 관리하는 느린 작업 임계값을 활성화하려면 다음 명령을 실행하세요.
atlas performanceAdvisor slowOperationThreshold enable --projectId 56fd11f25f23b33ef4c2a331
로그 다운로드
다음 명령을 실행하여 프로젝트 에서 지정된 호스팅하다 에 대한 MongoDB 로그가 포함된 압축 파일 다운로드 .
atlas logs download atlas-lnmtkm-shard-00-00.ajlj3.mongodb.net mongodb.gz --projectId 56fd11f25f23b33ef4c2a331
Terraform으로 리소스를 생성하기 전에 다음을 수행해야 합니다.
결제 조직을 생성하고 해당 결제 조직의 API 키를 생성합니다. 터미널에서 다음 명령을 실행하여 API 키를 환경 변수로 저장하세요.
export MONGODB_ATLAS_PUBLIC_KEY="<insert your public key here>" export MONGODB_ATLAS_PRIVATE_KEY="<insert your private key here>"
또한 환경에 맞는 작업 공간을 만드는 것이 좋습니다.
경고 구성
다음 예제에서는 경고 및 경고 알림 구성하는 방법을 보여 줍니다. 각 예시 에 대해 다음 파일을 만들어야 합니다. 각 예시 에 대한 파일을 자체 디렉토리 에 배치합니다. 값을 사용하도록 ID와 이름을 변경합니다.
variables.tf
variable "atlas_org_id" { type = string description = "MongoDB Atlas Organization ID" } variable "atlas_project_name" { type = string description = "The MongoDB Atlas Project Name" } variable "atlas_project_id" { description = "MongoDB Atlas project id" type = string } variable "atlas_cluster_name" { description = "MongoDB Atlas Cluster Name" default = "datadog-test-cluster" type = string }
terraform.tfvars
atlas_org_id = "32b6e34b3d91647abb20e7b8" atlas_project_name = "Customer Portal - Prod" atlas_project_id = "67212db237c5766221eb6ad9" atlas_cluster_name = "myCluster"
예: 복제 지연 발생하여 데이터 불일치가 발생할 수 있는 경우 GROUP_CLUSTER_MANAGER
역할 있는 사용자에게 이메일 로 경고 알림을 보내려면 다음을 사용합니다.
main.tf
resource "mongodbatlas_alert_configuration" "test" { project_id = var.atlas_project_id event_type = "REPLICATION_OPLOG_WINDOW_RUNNING_OUT" enabled = true notification { type_name = "GROUP" interval_min = 10 delay_min = 0 sms_enabled = false email_enabled = true roles = ["GROUP_CLUSTER_MANAGER"] } matcher { field_name = "CLUSTER_NAME" operator = "EQUALS" value = "myCluster" } threshold_config { operator = "LESS_THAN" threshold = 1 units = "HOURS" } }
클러스터 지표 보기
샘플 명령을 실행하여 다음 지표 조회 .
OPCOUNTERS - 최대 로드 시 발생하는 쿼리, 업데이트, 삽입 및 삭제의 양을 모니터 하고 로드가 예기치 않게 증가하지 않도록 합니다.
티켓 - 허용된 동시 읽기 및 쓰기 수가 크게 또는 자주 감소하지 않도록 보장합니다.
연결 - 멤버 간 하트비트 및 복제 에 사용되는 소켓 수가 설정하다 제한을 초과하지 않도록 합니다.
쿼리 타겟팅 - 반환된 문서 수(초 단위로 평균)에 맞게 스캔된 키와 문서 수가 너무 많지 않도록 합니다.
SYSTEM CPU - CPU 사용량이 안정적인지 확인합니다.
atlas metrics processes atlas-lnmtkm-shard-00-00.ajlj3.mongodb.net:27017 \ --projectId 56fd11f25f23b33ef4c2a331 \ --granularity PT1H \ --period P7D \ --type CONNECTIONS,OPCOUNTER_DELETE,OPCOUNTER_INSERT,OPCOUNTER_QUERY,OPCOUNTER_UPDATE,TICKETS_AVAILABLE_READS,TICKETS_AVAILABLE_WRITE,CONNECTIONS,QUERY_TARGETING_SCANNED_OBJECTS_PER_RETURNED,QUERY_TARGETING_SCANNED_PER_RETURNED,SYSTEM_CPU_GUEST,SYSTEM_CPU_IOWAIT,SYSTEM_CPU_IRQ,SYSTEM_CPU_KERNEL,SYSTEM_CPU_NICE,SYSTEM_CPU_SOFTIRQ,SYSTEM_CPU_STEAL,SYSTEM_CPU_USER \ --output json
경고 구성
프로젝트의 연결 수를 기반으로 연결 폭주 가능성이 감지될 때 이메일을 통해 그룹에 경고를 보내려면 다음 명령을 실행하세요.
atlas alerts settings create \ --enabled \ --event "OUTSIDE_METRIC_THRESHOLD" \ --metricName CONNECTIONS \ --metricOperator LESS_THAN \ --metricThreshold 1 \ --metricUnits RAW \ --notificationType GROUP \ --notificationRole "GROUP_DATA_ACCESS_READ_ONLY","GROUP_CLUSTER_MANAGER","GROUP_DATA_ACCESS_ADMIN" \ --notificationEmailEnabled \ --notificationEmailAddress "user@example.com" \ --notificationIntervalMin 5 \ --projectId 6698000acf48197e089e4085
데이터베이스 성능 모니터링
다음 명령을 실행하여 쿼리 속도가 느린 컬렉션에 대해 추천 인덱스를 조회 .
atlas performanceAdvisor suggestedIndexes list \ --projectId 56fd11f25f23b33ef4c2a331 \ --processName atlas-zqva9t-shard-00-02.2rnul.mongodb.net:27017
로그 다운로드
다음 명령을 실행하여 프로젝트 에서 지정된 호스팅하다 에 대한 MongoDB 로그가 포함된 압축 파일 다운로드 .
atlas logs download atlas-lnmtkm-shard-00-00.ajlj3.mongodb.net mongodb.gz --projectId 56fd11f25f23b33ef4c2a331
Terraform으로 리소스를 생성하기 전에 다음을 수행해야 합니다.
결제 조직을 생성하고 해당 결제 조직의 API 키를 생성합니다. 터미널에서 다음 명령을 실행하여 API 키를 환경 변수로 저장하세요.
export MONGODB_ATLAS_PUBLIC_KEY="<insert your public key here>" export MONGODB_ATLAS_PRIVATE_KEY="<insert your private key here>"
경고 구성
다음 예제에서는 경고 및 경고 알림 구성하는 방법을 보여 줍니다. 각 예시 에 대해 다음 파일을 만들어야 합니다. 각 예시 에 대해 이러한 파일을 자체 디렉토리 에 배치하고 main.tf
파일 만 바꿉니다. 값을 사용하도록 ID와 이름을 변경합니다.
variables.tf
variable "atlas_org_id" { type = string description = "MongoDB Atlas Organization ID" } variable "atlas_project_name" { type = string description = "The MongoDB Atlas Project Name" } variable "atlas_project_id" { description = "MongoDB Atlas project id" type = string } variable "atlas_cluster_name" { description = "MongoDB Atlas Cluster Name" default = "datadog-test-cluster" type = string } variable "datadog_api_key" { description = "Datadog api key" type = string } variable "datadog_region" { description = "Datadog region" default = "US5" type = string } variable "prometheus_user_name" { type = string description = "The Prometheus User Name" default = "puser" } variable "prometheus_password" { type = string description = "The Prometheus Password" default = "ppassword" }
terraform.tfvars
atlas_org_id = "32b6e34b3d91647abb20e7b8" atlas_project_name = "Customer Portal - Prod" atlas_project_id = "67212db237c5766221eb6ad9" atlas_cluster_name = "myCluster" datadog_api_key = "1234567890abcdef1234567890abcdef" datadog_region = "US5" prometheus_user_name = "prometheus_user" prometheus_password = "secure_prometheus_password"
예시 1: Datadog 및 Prometheus와 같은 타사 서비스와 통합하여 경고 알림을 설정하려면 다음을 사용하세요.
main.tf
resource "mongodbatlas_third_party_integration" "test_datadog" { project_id = var.atlas_project_id type = "DATADOG" api_key = var.datadog_api_key region = var.datadog_region } resource "mongodbatlas_third_party_integration" "test_prometheus" { project_id = var.atlas_project_id type = "PROMETHEUS" user_name = var.prometheus_user_name password = var.prometheus_password service_discovery = "http" enabled = true } output "datadog.id" { value = mongodbatlas_third_party_integration.test_datadog.id } output "prometheus.id" { value = mongodbatlas_third_party_integration.test_prometheus.id }
2 예시: 5 분 이상 복제본 세트 에 프라이머리 없는 경우 Datadog 및 Prometheus와 같은 타사 서비스에 경고 알림을 보내려면 다음을 사용합니다.
main.tf
resource "mongodbatlas_alert_configuration" "test_alert_notification" { project_id = var.atlas_project_id event_type = "NO_PRIMARY" enabled = true notification { type_name = "PROMETHEUS" integration_id = mongodbatlas_third_party_integration.test_datadog.id # ID of the Atlas Prometheus integration } notification { type_name = "DATADOG" integration_id = mongodbatlas_third_party_integration.test_prometheus.id # ID of the Atlas Datadog integration } matcher { field_name = "REPLICA_SET_NAME" operator = "EQUALS" value = "myReplSet" } threshold_config { operator = "GREATER_THAN" threshold = 5 units = "MINUTES" } }
3 예시: 복제 지연 발생하여 데이터 불일치가 발생할 수 있는 경우 GROUP_CLUSTER_MANAGER
역할 있는 사용자에게 이메일 로 경고 알림을 보내려면 다음을 사용합니다.
main.tf
resource "mongodbatlas_alert_configuration" "test_replication_lag_alert" { project_id = var.atlas_project_id event_type = "OUTSIDE_METRIC_THRESHOLD" enabled = true notification { type_name = "GROUP" interval_min = 10 delay_min = 0 sms_enabled = false email_enabled = true roles = ["GROUP_CLUSTER_MANAGER"] } matcher { field_name = "CLUSTER_NAME" operator = "EQUALS" value = "myCluster" } metric_threshold_config { metric_name = "OPLOG_SLAVE_LAG_MASTER_TIME" operator = "GREATER_THAN" threshold = 1 units = "HOURS" } }