Concept
모니터링 권한을 가진 IAM user를 이용하면 여러 프로젝트를 한 곳에서, Exporter를 띄워 관리할 수 있다.
Create Service Account and Edit permissions
Create Policy and Connect with iam user
Create Policy
- name: cloudwatch-exporter
cloudwatch-exporter.json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cloudwatch:GetMetricData",
"cloudwatch:ListMetrics",
"cloudwatch:GetMetricStatistics",
"tag:GetResources",
"tag:TagResources"
],
"Resource": "*",
"Condition": {
"Bool": {
"aws:SecureTransport": "true"
}
}
}
]
}
Connect policy with iam role
- CloudWatch
- Resource Group Tagging
Create Secret from Service Account key
Kubernetes secret 만드는법 참고
2022.07.08 - [Kubernetes] - [Kubernetes]How to create Kubernetes Secret from Json/Yaml/Literal
- 모니터링 대상 프로젝트에서 생성한 IAM User의 access-key.csv을 다운로드 한다.
- csv파일의 Access key ID, Secret access key을 가지고 secret을 만든다.
secret example
apiVersion: v1
kind: Secret
metadata:
name: sa-for-monitoring-1
type: Opaque
stringData:
access_key: AKIA22J
secret_key: yZGrY/X
k apply -f secret.yaml
Modify prometheus-cloudwatch-exporter Helm chart
Install cloudwatch-exporter 참고
2022.07.11 - [Monitoring/Prometheus] - [Prometheus](AWS)Install Cloudwatch-exporter with helm chart
# line 66
aws:
# 중략
secret:
name: sa-for-monitoring-2
aws.secret.name
- 위에서 생성한 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: cloudwatch
static_configs:
- targets:
- p-1-prometheus-cloudwatch-exporter.monitoring.svc.cluster.local:9106
labels:
project: 'jm-han'
- scrape_configs
- labels을 통해 프로젝트를 분류하여 대시보드 또는 알람을 분리할 수 있다.