OpenSearch Dashboards와 Advanced Managed Prometheus 연동
카카오클라우드 Advanced Managed Search와 Advanced Managed Prometheus를 연동하는 방법에 대해 설명합니다.
- 예상 소요 시간: 20분
- 권장 운영 체제: MacOS, Ubuntu
- 사전 준비 사항
- Advanced Managed Search 클러스터 생성
- Advanced Managed Prometheus 워크스페이스 생성
- Advanced Managed Prometheus 연동을 위한 액세스 키 발급
시나리오 소개
본 튜토리얼을 통해 로그(AMS)와 메트릭(AMP)의 파편화된 모니터링 환경을 하나로 통합하여, 장애 발생 시 인프라 상태와 애플리케이션 로그를 동시에 분석할 수 있는 통합 Observability 환경을 구축할 수 있습니다.
이 튜토리얼에서는 OpenSearch Dashboards에 Prometheus 데이터 소스를 등록하여, 다음과 같은 통합 관측 환경을 구성합니다.
- 로그(OpenSearch)와 메트릭(Prometheus)을 하나의 UI에서 조회
- 메트릭 이상 발생 시 로그와 함께 원인 분석
- 운영 대시보드 및 Observability 활용도 향상
시작하기 전에
이 튜토리얼을 진행하기 앞서, 먼저 클러스터 생성 및 관리와 워크스페이스 생성 및 관리 참고하여 Advanced Managed Search 클러스터와 Advanced Managed Prometheus 워크스페이스를 생성해 주세요.
이 튜토리얼에서 사용하는 API 요청은 Advanced Managed Search 클러스터 엔드포인트를 기준으로 호출합니다.
클러스터 상세 정보 페이지에서 엔드포인트(Endpoint) 와 마스터 사용자 계정 정보를 확인한 뒤,
아래 예시의 API 경로(/...) 앞에 클러스터 엔드포인트를 붙여서 요청을 실행하세요.
예: https://<AMS_ENDPOINT>/_plugins/_query/_datasources
시작하기
Step 1. Prometheus 데이터 소스 등록
OpenSearch Dashboards에서 AMP를 조회하기 위해 Prometheus 데이터 소스를 등록합니다.
POST _plugins/_query/_datasources
{
"name": "amp-prometheus",
"connector": "prometheus",
"allowedRoles": ["all_access"],
"properties": {
"prometheus.uri": "${READ_ENDPOINT}",
"prometheus.auth.type": "kakaocloudauth",
"prometheus.auth.region": "${REGION}",
"prometheus.auth.credential_id": "${CREDENTIAL_ID}",
"prometheus.auth.credential_secret": "${CREDENTIAL_SECRET}"
}
}
| 환경변수 | 설명 |
|---|---|
| READ_ENDPOINT🖌︎ | 카카오클라우드 콘솔에서 생성한 워크스페이스의 Read 엔드포인트에서 /api/v1/query 를 제외하고 입력 |
| REGION🖌︎ | 워크스페이스가 생성된 리전 정보 예: kr-central-2 |
| CREDENTIAL_ID🖌︎ | 사용자 액세스 키 ID |
| CREDENTIAL_SECRET🖌︎ | 사용자 보안 액세스 키 |
allowedRoles는 Prometheus 데이터 소스를 사용할 수 있는 OpenSearch 보안 역할(Role)을 지정합니다.
튜토리얼에서는 기본 관리자 역할인 all_access를 사용하며, 운영 환경에서는 조직의 보안 정책에 맞는 역할로 변경할 수 있습니다.
prometheus.uri에는 Write 엔드포인트가 아니라 Read(Query) 엔드포인트를 입력해야 합니다. Read 엔드포인트 입력 시 워크스페이스 ID 뒤의 /api/v1/query는 제외하고 입력해 주세요.
Step 2. 데이터 소스 등록 확인
등록된 데이터 소스를 조회하여 정상적으로 생성되었는지 확인합니다.
OpenSearch Dashboards > Dev Tools에서 아래 요청을 실행하세요.
GET _plugins/_query/_datasources
응답에 "status": "ACTIVE" 상태의 amp-prometheus 데이터 소스가 표시되면 정상입니다.
Step 3. OpenSearch Dashboards에서 메트릭 조회
OpenSearch Dashboards에서 다음 경로로 이동합니다.
- Observability > Metrics
등록한 Prometheus 데이터 소스를 선택한 후, PromQL 쿼리를 실행하여 메트릭이 정상적으로 조회되는지 확인합니다.
OpenSearch Dashboard에 접속이 되지 않는 경우 OpenSearch Dashboard 외부 접근 (nginx) 가이드를 참고해 주세요.
- Label 기반 쿼리 필수: 메타데이터(Label)가 포함되지 않은 Prometheus 쿼리는 조회가 제한될 수 있습니다.
- 예:
http_requests_total단독 쿼리보다는http_requests_total{service="my-service"}와 같이 특정 레이블을 지정하는 방식을 권장합니다.
- 예:
- 데이터 보존 기간: Label 기반 메트릭 데이터는 생성일로부터 최대 90일까지만 가능합니다.