Prometheus와 통합
Prometheus 는 지정된 간격으로 구성된 대상에서 메트릭을 수집하고, 규칙 표현식을 평가하고, 결과를 표시하며, 특정 조건이 관찰되면 알림을 트리거할 수 있습니다.
통합을 통해 배포서버 에 대한 메트릭 데이터를 Prometheus 로 전송하도록 를 구성할 수 MongoDB Ops Manager 있습니다. 인스턴스.
전제 조건
Prometheus 통합은 MongoDB Agent 를 사용하는자동화 managed 클러스터에서 사용할 수 12 있습니다.0.15.7646 또는 그 이후 버전. MongoDB Agent 12.0.15.7646 는 MongoDB Ops Manager 6.0.7와 함께 릴리스됩니다.
Prometheus 작동 인스턴스. 작업 인스턴스를설정하려면 설치 가이드를 참조하세요.
(선택 사항) Grafana 를 사용하여 Prometheus 메트릭을 시각화합니다.
절차
를 Prometheus 와 통합하려면 MongoDB Ops Manager :
선호하는 사용자 이름과 비밀번호를 입력합니다.
Prometheus 인증 자격 증명 은 MongoDB Ops Manager 의 Prometheus 통합과 함께 사용하도록 특별히 설계되었습니다. MongoDB Ops Manager 는 이러한 자격 증명 을 사용하여 Prometheus 검색 엔드포인트에 액세스 하고 MongoDB Ops Manager 노드에서 Prometheus 지표 를 스크래핑합니다. 이러한 기능으로 엄격하게 제한되며 모니터링 데이터에 액세스하고 수집하는 것 이상의 추가 권한이나 기능은 없습니다.
중요
사용자 아이디와 비밀번호를 안전한 위치에 복사합니다. 이 화면을 벗어나면 비밀번호에 액세스할 수 없습니다.
(선택 사항) 모든 Prometheus 지표를 암호화합니다.
이 설정을 활성화하면 Ops Manager는 Prometheus 인스턴스가 https
를 사용하여 지표를 스크랩하도록 합니다.
필드 | 설명 |
---|---|
TLS 인증서 키 파일 경로 |
사용자는 다음에 대한 책임이 있습니다.
|
--tlsCertificateKeyFilePassword | 인증서 키 파일이 암호화된 경우 필수입니다. |
선호하는 서비스 검색 방법을 선택합니다.
Discovery Method | 설명 | ||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
이 메서드를 사용하려면 Prometheus v2.28 이상이 필요합니다. scrape_config 를 생성합니다.구성 파일 의 일부 HTTP 엔드포인트를 통해 대상을 검색합니다. | |||||||||||||||||||||||||||||||||||||||
이 메서드를 사용하면 Prometheus가 YAML 또는 JSON 문서를 읽고 스크래핑할 대상을 구성할 수 있습니다. 사용자는 Discovery API에 요청하여 대상을 제공하고 그 결과를 요청하려면 다음 탭 중 하나에서 자리 표시자 텍스트를 대체하거나 다른 언어로 직접 스크립트를 생성하십시오.
Discovery API에 대해 자세히 알아보려면 Prometheus의 최신 대상 반환을 참조하세요. |
Prometheus에서 클러스터 메트릭 보기.
생성된 스니펫을 구성 파일의 scrape_configs 섹션에 복사하고 플레이스홀더 텍스트로 대체합니다.
두 메서드의 구성 파일 예시는 예시 구성을 참조하세요.
프로메테우스 인스턴스를 다시 시작합니다.
Prometheus 인스턴스의 상단 탐색 메뉴에서
Status
클릭하고Targets
클릭하여 배포 측정항목을 확인합니다.
구성 예시
다음은 구성 파일 의 예를 보여줍니다.HTTP Service 검색 또는 파일 서비스 검색 메서드를 사용하는 경우.
두 방법의 구성 파일에는 다음 필드가 포함되어 있습니다.
필드 | 설명 |
---|---|
scrape_interval | 대상을 스크래핑하는 빈도를 나타내는 시간입니다. 이 설정은 최소 10초의 시간을 지원합니다. |
job_name | 스크랩된 측정항목에 사람이 읽을 수 있는 라벨이 할당되었습니다. |
metrics_path | 대상에서 측정항목을 가져올 위치를 나타내는 HTTP 리소스 경로입니다. |
scheme | http 또는 https 요청에 대해 구성된 Prometheus 프로토콜 체계. https 를 구성하는 경우 tlsPemPath 을 지정해야 합니다. |
basic_auth | 모든 스크랩 요청에 사용할 권한 부여 헤더입니다. |
HTTP Service 검색
HTTP Service 검색 방법에는 다음 하위 필드가 있는 http_sd_configs
필드도 포함되어 있습니다.
필드 | 설명 |
---|---|
url | Prometheus가 대상을 가져오는 URL입니다. |
refresh_interval | 엔드포인트를 다시 쿼리할 시기를 나타내는 시간입니다. |
basic_auth | API 서버 인증에 사용할 자격 증명입니다. |
global: scrape_interval: 15s scrape_configs: - job_name: "CM-Testing-mongo-metrics" scrape_interval: 10s metrics_path: /metrics scheme : https basic_auth: username: prom_user_61e6e34e93eac1632d39f457 password: V7hTyLfkjwiWQbv http_sd_configs: - url: https://cloud.mongodb.com/prometheus/v1.0/groups/61e6e34e93eac1632d39f457/discovery refresh_interval: 60s basic_auth: username: prom_user_61e6e34e93eac1632d39f457 password: V7hTyLfkjwiWQbv
파일 서비스 검색
파일 서비스 검색 방법에는 다음 하위 필드가 있는 file_sd_configs
필드도 포함되어 있습니다.
필드 | 설명 |
---|---|
files | 메트릭 스크래핑 대상을 추출할 파일이 포함된 목록입니다. |
global: scrape_interval: 15s scrape_configs: - job_name: "CM-Testing-mongo-metrics" scrape_interval: 10s metrics_path: /metrics scheme : https basic_auth: username: prom_user_61e6e34e93eac1632d39f457 password: V7hTyLfkjwiWQbv file_sd_configs: - files: - /usr/local/etc/targets.json
Prometheus에서 사용할 수 있는 성능 지표
Prometheus 를 사용할 때 다음 지표를 사용할 수 MongoDB Atlas cluster 있습니다. 와의 통합:
서버 상태 메트릭
replSetStatus metrics
MongoDB 메트릭 레이블
각 MongoDB 측정항목에는 다음 라벨이 포함되어 있습니다.
레이블 | 설명 |
---|---|
group_id | 프로젝트를 식별하는 고유한 16진수 문자열입니다. |
org_id | Atlas 조직을 식별하는 고유한 24자리 16진수 문자열. |
cl_role | 클러스터 역할을 정의하는 사람이 읽을 수 있는 레이블입니다. |
cl_name | 클러스터를 식별하는 사람이 읽을 수 있는 라벨입니다. |
rs_nm | 복제본 세트를 식별하는 사람이 읽을 수 있는 레이블입니다. |
rs_state | 복제본 세트 상태를 나타내는 숫자입니다. |
process_port | 프로세스가 실행되는 포트입니다. |
MongoDB 정보 메트릭
mongodb_info
은 언제나 값이 1
인 게이지입니다. 이 지표에는 모든 MongoDB 지표 레이블과 함께 다음 레이블을 포함합니다.
레이블 | 설명 |
---|---|
mongodb_version | 주 버전, 부 버전 및 패치 버전을 나타내는 문자열입니다. |
replica_state_name | 복제본 세트 멤버 상태를 나타내는 문자열입니다. |
process_type | 실행 중인 프로세스를 나타내는 문자열입니다. 값은 mongod , mongos 또는 config 일 수 있습니다. |
하드웨어 지표
참고
Prometheus 표현식 브라우저에서 각 하드웨어 지표에 대한 설명을 볼 수도 있습니다.
이름 | 운영 체제 | 유형 | 설명 |
---|---|---|---|
hardware_system_cpu_nice | Unix, Darwin | 카운터 | 우선 순위가 낮은 사용자 모드에서 보낸 시간입니다. |
hardware_system_cpu_io_wait | Unix | 카운터 | I/O가 완료될 때까지 기다리는 시간입니다. |
hardware_system_cpu_irq | Unix | 카운터 | 인터럽트 서비스에 소요된 시간. |
hardware_system_cpu_soft_irq | Unix | 카운터 | softirq를 서비스하는 데 소요된 시간입니다. |
hardware_system_cpu_steal | Unix | 카운터 | 가상 환경에서 실행할 때 다른 운영 체제에서 소비한 시간입니다. |
hardware_system_cpu_guest | Unix | 카운터 | Linux 커널의 제어 하에 게스트 운영 체제의 가상 CPU를 실행하는 데 소요된 시간입니다. |
hardware_system_cpu_guest_nice | Unix | 카운터 | 친절하게 게스트를 응대하는 데 소요되는 시간. |
hardware_system_cpu_kernel_milliseconds | 모두 | 카운터 | 시스템 모드에서 보낸 시간입니다. |
hardware_system_cpu_user_milliseconds | 모두 | 카운터 | 사용자 모드에서 보낸 시간입니다. |
hardware_disk_metrics_weighted_time_io | Unix | 카운터 | I/O에 소요된 시간 가중치. |
hardware_disk_metrics_physical_write_count | Unix | 카운터 | 처리된 물리적 쓰기 I/O의 수입니다. |
hardware_disk_metrics_physical_read_count | Unix | 카운터 | 처리된 물리적 읽기 I/O의 수입니다. |
hardware_disk_metrics_total_time | Unix | 카운터 | 이 차단 장치가 활성화된 총 시간입니다. |
hardware_disk_metrics_idle_time | Windows | 카운터 | 유휴 작업에 소요된 시간입니다. |
hardware_disk_metrics_disk_space_free_bytes | 모두 | 게이지 | 마운트된 파일 시스템에서 사용 가능한 디스크 공간입니다. |
hardware_disk_metrics_disk_space_used_bytes | 모두 | 게이지 | 마운트된 파일 시스템에서 사용되는 디스크 공간입니다. |
hardware_disk_metrics_read_count | 모두 | 카운터 | 처리된 읽기 I/O의 수입니다. |
hardware_disk_metrics_read_time_milliseconds | 모두 | 카운터 | 읽기 요청에 대한 총 대기 시간입니다. |
hardware_disk_metrics_write_count | 모두 | 카운터 | Number of write I/O's processed. |
hardware_disk_metrics_write_time_milliseconds | 모두 | 카운터 | 쓰기 요청에 대한 총 대기 시간입니다. |
hardware_process_cpu_children_user | Unix | 카운터 | 이 프로세스가 어린이를 기다릴 수 있도록 사용자 모드에서 예약된 시간입니다. |
hardware_process_cpu_children_kernel | Unix | 카운터 | 이 프로세스가 하위 프로세스를 기다리도록 커널 모드에서 예약된 시간입니다. |
hardware_process_cpu_kernel_milliseconds | 모두 | 카운터 | 이 프로세스에 대해 커널 모드에서 예약된 시간입니다. |
hardware_process_cpu_user_milliseconds | 모두 | 카운터 | 이 프로세스에 대해 사용자 모드에서 예약된 시간입니다. |
hardware_system_vm_page_swap_in | Unix | 카운터 | 시스템이 디스크에서 스왑인한 페이지 수입니다. |
hardware_system_vm_page_swap_out | Unix | 카운터 | 시스템이 디스크로 교체한 페이지 수입니다. |
hardware_system_memory_mem_total | Unix | 게이지 | 사용 가능한 총 RAM(물리적 RAM에서 몇 개의 예약 비트와 커널 바이너리 코드를 뺀 값). |
hardware_system_memory_mem_free | Unix | 게이지 | LowFree 0} + HighFree 의 합계. |
hardware_system_memory_mem_available | Unix | 게이지 | 교체하지 않고 새 애플리케이션을 시작하는 데 사용할 수 있는 메모리 양의 추정치입니다. |
hardware_system_memory_buffers | Unix | 게이지 | 엄청나게 커지지 않아야 하는 원시 디스크 블록을 위한 임시 스토리지입니다. |
hardware_system_memory_cached | Unix | 게이지 | 디스크에서 읽은 파일을 위한 인메모리 캐시입니다. 여기에는 SwapCached 이 포함되지 않습니다. |
hardware_system_memory_swap_total | Unix | 게이지 | 사용 가능한 스왑 공간의 총량입니다. |
hardware_system_memory_swap_free | Unix | 게이지 | 사용되지 않은 스왑 공간의 총량입니다. |
hardware_system_memory_shared_mem | Unix | 게이지 | 콘텐츠가 가상 메모리에 있는 파일 시스템에서 사용되는 메모리 양입니다. |
hardware_system_memory_swap_free_kilobytes | 모두 | 게이지 | 사용되지 않은 스왑 공간의 총량입니다. |
hardware_system_memory_swap_total_kilobytes | 모두 | 게이지 | 사용 가능한 스왑 공간의 총량입니다. |
hardware_platform_num_logical_cpus | 모두 | 게이지 | 현재 프로세스에서 사용할 수 있는 논리적 CPU의 수입니다. |
hardware_system_network_eth0_bytes_in_bytes | 모두 | 카운터 | 인터페이스에서 수신한 데이터의 바이트 수입니다. |
hardware_system_network_eth0_bytes_out_bytes | 모두 | 카운터 | 인터페이스에서 전송되는 데이터의 바이트 수입니다. |
hardware_system_network_lo_bytes_in_bytes | 모두 | 카운터 | 인터페이스에서 수신한 데이터의 바이트 수입니다. |
hardware_system_network_lo_bytes_out_bytes | 모두 | 카운터 | 인터페이스에서 전송되는 데이터의 바이트 수입니다. |
하드웨어 메트릭 레이블
각 하드웨어 지표에는 다음과 같은 레이블이 포함되어 있습니다.
레이블 | 설명 |
---|---|
group_id | 프로젝트를 식별하는 고유한 16진수 문자열입니다. |
org_id | Atlas 조직을 식별하는 고유한 24자리 16진수 문자열. |
process_port | 프로세스가 실행되는 포트입니다. |
disk_name | 디스크를 식별하는 사람이 읽을 수 있는 라벨입니다. |