Docs Menu
Docs Home
/
MongoDB Ops Manager
/ /

Prometheus와 통합

이 페이지의 내용

  • 전제 조건
  • 절차
  • 구성 예시
  • Prometheus에서 사용할 수 있는 성능 지표
  • MongoDB 메트릭 레이블
  • MongoDB 정보 메트릭
  • 하드웨어 지표
  • 하드웨어 메트릭 레이블

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 :

1
  1. 이미 표시되어 있지 않은 경우 탐색 모음의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.

  2. 이미 표시되어 있지 않은 경우 Projects 탐색 모음의 프로젝트 메뉴에서 원하는 프로젝트를 선택합니다.

  3. Projects 메뉴 옆에 있는 Options 메뉴를 펼친 다음 Integrations 을 클릭합니다.

2
3

Prometheus 인증 자격 증명 은 MongoDB Ops Manager 의 Prometheus 통합과 함께 사용하도록 특별히 설계되었습니다. MongoDB Ops Manager 는 이러한 자격 증명 을 사용하여 Prometheus 검색 엔드포인트에 액세스 하고 MongoDB Ops Manager 노드에서 Prometheus 지표 를 스크래핑합니다. 이러한 기능으로 엄격하게 제한되며 모니터링 데이터에 액세스하고 수집하는 것 이상의 추가 권한이나 기능은 없습니다.

중요

사용자 아이디와 비밀번호를 안전한 위치에 복사합니다. 이 화면을 벗어나면 비밀번호에 액세스할 수 없습니다.

4

기본값인 0.0.0.0:9216 은 로컬 시스템의 모든 IPv4 주소의 포트 9216 에서 지표를 스크랩합니다.

5

이 설정을 활성화하면 Ops Manager는 Prometheus 인스턴스가 https 를 사용하여 지표를 스크랩하도록 합니다.

필드
설명
TLS 인증서 키 파일 경로

PEM https Prometheus 스크래핑 엔드포인트를 가동하는 데 필요한 인증서 및 키가 포함된 파일 경로입니다.

사용자는 다음에 대한 책임이 있습니다.

  • TLS 인증서 키 파일 발급 및 갱신.

  • 자동화 에이전트 로그에서 엔드포인트가 올바르게 시작되었는지 확인합니다.

--tlsCertificateKeyFilePassword
인증서 키 파일이 암호화된 경우 필수입니다.
6
Discovery Method
설명
이 메서드를 사용하려면 Prometheus v2.28 이상이 필요합니다. scrape_config 를 생성합니다.구성 파일 의 일부 HTTP 엔드포인트를 통해 대상을 검색합니다.

이 메서드를 사용하면 Prometheus가 YAML 또는 JSON 문서를 읽고 스크래핑할 대상을 구성할 수 있습니다.

사용자는 Discovery API에 요청하여 대상을 제공하고 그 결과를 targets.json 파일에 저장할 책임이 있습니다.

요청하려면 다음 탭 중 하나에서 자리 표시자 텍스트를 대체하거나 다른 언어로 직접 스크립트를 생성하십시오.

# Sets the `Authorization` header on every scrape
# request with the username and password from the
# previous step. The URL that Prometheus fetches the
# targets from.
# Replace the <group-id> with the project ID of your
# Atlas instance.
curl --header 'Accept: application/json' \
--user <username>:<password> \
--request GET "https://cloud.mongodb.com/prometheus/v1.0/groups/{GROUP-ID}/discovery"

requests 라이브러리를 설치해야 하는 경우 설치 가이드를 참조하세요.

import time, json, requests
# This script sets the `Authorization` header on every
# scrape request with the configured username and
# password. Then it tells Prometheus to fetch targets
# from the specified URL.
#
# Note: Replace the <username> and <password> with the
# values in the previous step, and <group-id> with the
# project ID of your Atlas instance.
basic_auth_user="<username>"
basic_auth_password="<password>"
discovery_api_url="https://cloud.mongodb.com/prometheus/v1.0/groups/{GROUP-ID}/discovery"
# The script updates your targets.json file every
# minute, if it successfully retrieves targets.
#
# Note: Replace the <path-to-targets.json> with the
# path to your targets.json file.
starttime = time.time()
while True:
r = requests.get(discovery_api_url, auth=(basic_auth_user, basic_auth_password))
if r.status_code == 200:
with open('<path-to-targets.json>', 'w') as f:
json.dump(r.json(), f)
time.sleep(60.0 - ((time.time() - starttime) % 60.0))

Discovery API에 대해 자세히 알아보려면 Prometheus의 최신 대상 반환을 참조하세요.

7
8
  1. 생성된 스니펫을 구성 파일scrape_configs 섹션에 복사하고 플레이스홀더 텍스트로 대체합니다.

    두 메서드의 구성 파일 예시는 예시 구성을 참조하세요.

  2. 프로메테우스 인스턴스를 다시 시작합니다.

  3. Prometheus 인스턴스의 상단 탐색 메뉴에서 Status 클릭하고 Targets 클릭하여 배포 측정항목을 확인합니다.

다음은 구성 파일 의 예를 보여줍니다.HTTP Service 검색 또는 파일 서비스 검색 메서드를 사용하는 경우.

두 방법의 구성 파일에는 다음 필드가 포함되어 있습니다.

필드
설명
scrape_interval
대상을 스크래핑하는 빈도를 나타내는 시간입니다. 이 설정은 최소 10초의 시간을 지원합니다.
job_name
스크랩된 측정항목에 사람이 읽을 수 있는 라벨이 할당되었습니다.
metrics_path
대상에서 측정항목을 가져올 위치를 나타내는 HTTP 리소스 경로입니다.
scheme
http 또는 https 요청에 대해 구성된 Prometheus 프로토콜 체계. https 를 구성하는 경우 tlsPemPath 을 지정해야 합니다.
basic_auth
모든 스크랩 요청에 사용할 권한 부여 헤더입니다.

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 를 사용할 때 다음 지표를 사용할 수 MongoDB Atlas cluster 있습니다. 와의 통합:

각 MongoDB 측정항목에는 다음 라벨이 포함되어 있습니다.

레이블
설명
group_id
프로젝트를 식별하는 고유한 16진수 문자열입니다.
org_id
Atlas 조직을 식별하는 고유한 24자리 16진수 문자열.
cl_role
클러스터 역할을 정의하는 사람이 읽을 수 있는 레이블입니다.
cl_name
클러스터를 식별하는 사람이 읽을 수 있는 라벨입니다.
rs_nm
복제본 세트를 식별하는 사람이 읽을 수 있는 레이블입니다.
rs_state
복제본 세트 상태를 나타내는 숫자입니다.
process_port
프로세스가 실행되는 포트입니다.

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
디스크를 식별하는 사람이 읽을 수 있는 라벨입니다.

돌아가기

페이저듀티와 통합