Concept
모니터링 권한을 가진 Service Account를 이용하면 여러 프로젝트를 한 곳에서 Exporter를 띄워 관리할 수 있다.
Create Service Account and Edit permissions
- Logs Viewer
- Monitoring Viewer
Prometheus 서버를 GCP에 설치 하는 경우 Service Account에 아래 권한이 필요하다.
- 나의 경우 GKE로 운영중이고 GKE를 만들때 설정한 SA 계정에서 설정함
- 노드에서 확인 가능
- Service Account User
Create Secret from Service Account key
Kubernetes Secret 만드는 방법 참고
2022.07.08 - [Kubernetes] - [Kubernetes]How to create Kubernetes Secret from Json/Yaml/Literal
- 모니터링 대상 프로젝트에서 생성한 Service Account의
key.json
을 발급/다운로드 한다. key.json
의 이름을credentials.json
으로 수정한 뒤 secret으로 생성한다.
k create secret generic sa-for-monitoring-1 --from-file=credentials.json -n monitoring
Modify prometheus-exporter Helm chart
Install Prometheus 참고
2022.05.29 - [Monitoring/Prometheus] - [Prometheus]Install prometheus for kubernetes monitoring with helm chart
# line 43
stackdriver:
# The Google Project ID to gather metrics for
projectId: "other-project-name" #
# An existing secret which contains credentials.json
serviceAccountSecret: "sa-for-monitoring-1"
stackdriver.serviceAccountSecret
- 위에서 생성한 secret명을 입력한다. (여기서는 sa-for-monitoring-1)
Install helm chart and check data from prometheus
helm install p-2 . -n monitoring
Verify monitoring data
노출시킨 서비스주소로 접속하면 데이터가 수집되는것을 확인할 수 있다.
Add scrape config to prometheus-stack
kube-prometheus-stack에 위 주소를 등록한다.
Install prometheus-stack 참고
2022.05.29 - [Monitoring/Prometheus] - [Prometheus]Install prometheus for kubernetes monitoring with helm chart
additionalScrapeConfigs:
- job_name: stackdriver
static_configs:
- targets:
- p-1-prometheus-stackdriver-exporter.monitoring.svc.cluster.local:9255
labels:
project: 'jm-han'
- scrape_configs
- labels을 통해 프로젝트를 분류하여 대시보드 또는 알람을 분리할 수 있다.