Azure Prometheus를 사용하고 있으며, 이를 Atlas MongoDB와 통합하려고 합니다. Integrate with Prometheus - Atlas - MongoDB Docs 튜토리얼을 따라 이 통합을 구현하고, 아래는 해당 튜토리얼을 따라 얻은 scrape 설정입니다.
- job_name: "sandbox-mongo-metrics"
scrape_interval: 10s
metrics_path: /metrics
scheme: https
basic_auth:
username: "prometheus"
password: "xxx"
http_sd_configs:
- url: https://cloud.mongodb.com/prometheus/v1.0/groups/xxx/discovery?targetScheme=PRIVATE
refresh_interval: 60s
basic_auth:
username: "prometheus"
password: "xxx"
metadata:
name: ama-metrics-prometheus-config
namespace: kube-system
아래 configmap 파일을 생성하여 scrape 설정을 Prometheus에 추가했습니다.
kind: ConfigMap
apiVersion: v1
data:
prometheus-config: |-
scrape_configs:
- job_name: "sandbox-mongo-metrics"
scrape_interval: 10s
metrics_path: /metrics
scheme: https
basic_auth:
username: "prometheus"
password: "xxx"
http_sd_configs:
- url: https://cloud.mongodb.com/prometheus/v1.0/groups/xxx/discovery?targetScheme=PRIVATE
refresh_interval: 60s
basic_auth:
username: "prometheus"
password: "xxx"
metadata:
name: ama-metrics-prometheus-config
namespace: kube-system
Prometheus가 실행되는 Kubernetes pod 내부에서 대상 URL을 curl로 호출하면 문제없이 동작하고, MongoDB의 메트릭 엔드포인트를 성공적으로 반환이 됩니다. 근데, Prometheus web UI에서는 대상 스크레이프가 아래 오류와 함께 실패합니다.
server returned HTTP status 401 Unauthorized
위의 설정에서 빼먹거나, 잘못된 정보가 있는지 문의합니다.