kube-prometheus-stack
은 Kubernetes 환경에서 모니터링 및 경고 시스템을 쉽게 설정할 수 있도록 설계된 Helm 차트입니다. 이 스택은 Prometheus, Alertmanager, Grafana와 같은 오픈 소스 프로젝트를 이용해 k8s 클러스터 및 애플리케이션의 성능 및 상태를 모니터링하고 알림을 받을 수 있게 모아둔 차트입니다.
이번엔 간단하게 prometeus및 grafana정도를 설치할예정입니다.
참고로 aks에 helm을 이용해 설치하는내용을 기준으로 작성했습니다.
prometheus:
enabled: true
prometheusSpec:
storageSpec:
## Using PersistentVolumeClaim
volumeClaimTemplate:
spec:
storageClassName: azurefile-csi
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 25Gi
prometheus:
enabled: true
ingress:
enabled: true
ingressClassName: azure-application-gateway
hosts:
- aks-prometheus-dev.my-domain.com
tls:
- hosts:
- aks-prometheus-dev.my-domain.com
secretName: my-domain-com-secret
azure application gateway
를 사용중이고 기본으로 AGIC(Azure Gateway Ingress Controller)를 사용중입니다.
아래는 ingress 및 persistance 설정이며 기본적으로 grafana설정에 ingress 및 도메인 설정을 해주었습니다.
ingress:
enabled: true
ingressClassName: azure-application-gateway
annotations:
- appgw.ingress.kubernetes.io/ssl-redirect: "true"
labels: {}
hosts:
- aks-grafana-dev.my-domain.com
path: /
tls: []
- secretName: grafana-general-tls
hosts:
- aks-grafana-dev.my-domain.com
# # To make Grafana persistent (Using Statefulset)
# #
persistence:
enabled: true
type: pvc
storageClassName: "azurefile-csi"
accessModes:
- ReadWriteOnce
size: 20Gi
finalizers:
- kubernetes.io/pvc-protection
assertNoLeakedSecrets: false
grafana.ini:
database:
type: mysql
host: host
name: aks_grafana
user: dev-grafana
password: password
serviceAccount:
create: true
autoMount: true
loki:
schemaConfig:
configs:
- from: 2024-04-01
store: tsdb
object_store: s3
schema: v13
index:
prefix: loki_index_
period: 24h
useTestSchema: false
ingester:
chunk_encoding: snappy