Home » Genel » Docker ile Prometheus ve Alertmanager Kurulumu

Docker ile Prometheus ve Alertmanager Kurulumu

Merhaba,
Bu yazıda Docker üzerinde Prometheus ve Alertmanager kurulumunu adım adım anlatacağım.

Prometheus Kurulumu

Prometheus kurulumunu Docker kullanarak aşağıdaki komut ile gerçekleştirebilirsiniz:

docker run -d --name prometheus -p 9090:9090 -v /opt/prometheus:/etc/prometheus prom/prometheus

Bu örnekte /opt/prometheus dizini oluşturularak container içerisine bağlanmıştır. İsterseniz Docker volume kullanarak da aynı işlemi gerçekleştirebilirsiniz.

Prometheus’un sorunsuz şekilde çalışabilmesi için /opt/prometheus dizini altında prometheus.yml dosyasını oluşturmanız gerekmektedir. İlk aşamada dosyanın boş olması yeterlidir:

touch /opt/prometheus/prometheus.yml

Alertmanager Kurulumu

Alertmanager kurulumu için öncelikle bir Docker volume oluşturalım:

docker volume create alertmanager

Ardından Alertmanager container’ını çalıştıralım:

docker run -d --name alertmanager -p 9093:9093 -v alertmanager:/etc/alertmanager quay.io/prometheus/alertmanager

Kurulum tamamlandıktan sonra aşağıdaki dizinde bulunan alertmanager.yml dosyasını düzenlememiz gerekmektedir:

/var/lib/docker/volumes/alertmanager/_data/alertmanager.yml

Bu dosyada uyarıların nereye gönderileceğini belirliyoruz. Aşağıda e-posta gönderimi için örnek bir yapılandırma bulunmaktadır:

global:
resolve_timeout: 1m
route:
group_by: ["mail_alert_group"]
receiver: email_router
group_wait: 30s
group_interval: 5m
repeat_interval: 1h
receivers:
- name: email_router
email_configs:
- to: "[email protected]"
from: "[email protected]"
smarthost: "mail.example.com:587"
auth_username: "[email protected]"
auth_identity: "[email protected]"
auth_password: "parola"
require_tls: false
- name: web.hook
webhook_configs:
- url: "http://127.0.0.1:5001/"
inhibit_rules:
- source_matchers: [severity="critical"]
target_matchers: [severity="warning"]

Prometheus Alertmanager Entegrasyonu

Prometheus üzerinde alert kurallarını eklemek için bir klasör oluşturalım:

mkdir /opt/prometheus/alerts

Daha sonra /opt/prometheus/prometheus.yml dosyasını düzenleyerek Alertmanager’ı ekleyelim:

global:
scrape_interval: 15s
alerting:
alertmanagers:
- static_configs:
- targets: ['alertmanager-ip:9093']
rule_files:
- 'alerts/*.yml'

Exporter Ekleme (Windows Exporter Örneği)

Prometheus ile veri toplayabilmek için bir exporter eklememiz gerekmektedir. Bu örnekte Windows Exporter kullanılacaktır.

prometheus.yml dosyasına aşağıdaki yapılandırmayı ekleyin:

scrape_configs:
- job_name: kas1
static_configs:
- targets: ['kas1.ramazan.local:9182']
relabel_configs:
- source_labels: [__address__]
target_label: instance

Burada targets alanına izlemek istediğiniz makinenin hostname veya IP adresini yazmalısınız.


Alert Kuralları Tanımlama

Alert kuralları için /opt/prometheus/alerts/kas1.yml dosyasını oluşturalım:

groups:
- name: Kas1UpAlert
rules:
- alert: Kas1JobMissing
expr: up{job="Kas1"} == 0
for: 0m
labels:
severity: warning
annotations:
summary: "Kas1 job missing (instance {{$labels.instance}})"
description: "A Kas1 job has disappeared\nVALUE = {{$value}}\nLABELS = {{$labels}}"
- alert: CpuUsage
expr: 100 - (avg by (instance) (irate(windows_cpu_time_total{mode="idle"}[2m])) * 100) > 80
for: 10m
labels:
severity: warning
annotations:
summary: "CPU Usage (instance {{$labels.instance}})"
description: "CPU usage is more than 80%\nVALUE = {{$value}}\nLABELS = {{$labels}}"

Sonuç

Bu adımları tamamladıktan sonra Prometheus üzerinden metrikleri izleyebilir ve tanımladığınız kurallara göre Alertmanager aracılığıyla bildirimler alabilirsiniz.

Docker ile Prometheus ve Alertmanager kurulumu, sistem izleme ve uyarı mekanizmaları oluşturmak için hızlı ve etkili bir yöntemdir.

Yorum yapın