Prometheus + Grafana: Production-Ready Monitoring Kurulumu
Production ortamlarında monitoring olmadan çalışmak, uçak kullanırken gözlerinizi kapatmak gibi. Bu rehberde, 30+ cluster'da test ettiğim monitoring stack'ini paylaşıyorum.
Kubernetes'te Prometheus Kurulumu
Prometheus Operator kullanarak kolay kurulum yapın:
# Prometheus Operator kurulumu
kubectl create namespace monitoring
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm install prometheus prometheus-community/kube-prometheus-stack \
--namespace monitoring \
--set grafana.adminPassword=admin123Grafana Dashboard Konfigürasyonu
Temel dashboard'ları import edin ve customize edin:
- Kubernetes Cluster Overview (ID: 315)
- Kubernetes Pod Monitoring (ID: 6417)
- Node Exporter Full (ID: 1860)
apiVersion: v1
kind: ConfigMap
metadata:
name: grafana-datasources
namespace: monitoring
data:
datasources.yaml: |
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
url: http://prometheus-server:80
access: proxy
isDefault: trueAlert Rules Konfigürasyonu
Kritik metrikler için alert rules tanımlayın:
groups:
- name: kubernetes.rules
rules:
- alert: HighCPUUsage
expr: (100 - (avg by(instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)) > 80
for: 5m
labels:
severity: warning
annotations:
summary: "High CPU usage detected"
- alert: PodCrashLooping
expr: rate(kube_pod_container_status_restarts_total[15m]) > 0
for: 5m
labels:
severity: critical
annotations:
summary: "Pod is crash looping"Slack Entegrasyonu
Alert'leri Slack'e göndermek için webhook kullanın:
apiVersion: v1
kind: Secret
metadata:
name: alertmanager-slack
namespace: monitoring
type: Opaque
stringData:
webhook_url: "https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK"İpucu: Alert'leri çok sık göndermeyin. Threshold'ları dikkatli ayarlayın.
Dikkat: Production'da admin şifresini değiştirmeyi unutmayın!