DevOps ortamınızda günden güne artan konteynır sayısı ve performans optimizasyon çalışmaları için bir metrik toplama, takip mekanizması kullanmak gerekmektedir.
Böyle bir ortamı cAdvisor, Prometheus ve Grafana ile kolay bir şekilde oluşturabiliriz.
cAdvisor -> Google tarafından geliştirilen, konteynır tabanlı ortamlarda (docker konteynır, kubernetes pods vb) uygulamaların performans metriklerini toplar. İşler ve dışarı aktarır.
Prometheus -> Açık kaynak kodlu bir monitoring tool’ u, bizim sistemimizdeki görevi ise düzenli aralıklarla hedef sistemlerden metrikleri toplamak olacaktır.
Grafana ->Açık kaynak kodlu bir görselleştirme ve izleme uygulamasıdır. Belirtilen hedeflere bağlanıp verileri alır ve görselleştirip, dashboard üzerinden kullanıcıya sunar.
Hemen kurulumu yapalım, aşağıdaki docker-compose.yml dosyasını kullanabiliriz ayrıca prometheus.yml dosyasını da docker-compose.yml dosyanız ile aynı dizine koyup çalıştırabilirsiniz.
Prometheus.yml dosyası metriklerin nereden alınacağını belirtmektedir.
version: “3”
services:
cadvisor:
container_name: cadvisor
image: gcr.io/cadvisor/cadvisor:latest
ports:
– “8080:8080”
volumes:
– “/:/rootfs”
– “/var/run:/var/run”
– “/sys:/sys”
– “/var/lib/docker/:/var/lib/docker”
– “/dev/disk/:/dev/disk”
privileged: true
devices:
– “/dev/kmsg”
prometheus:
container_name: prometheus
image: prom/prometheus:latest
ports:
– “9090:9090”
volumes:
– “./prometheus.yml:/etc/prometheus/prometheus.yml”
privileged: true
depends_on:
– cadvisor
grafana:
container_name: grafana
image: grafana/grafana:latest
ports:
– “3000:3000”
environment:
– GF_PATHS_PROVISIONING=/etc/grafana/provisioning
– DS_PROMETHEUS=prometheus
volumes:
– “grafana-data:/var/lib/grafana”
privileged: true
depends_on:
– prometheus
volumes:
grafana-data:
Şimdi prometheus.yml dosyamızı oluşturalım, ben monitoring konteynır grubu için ayrı bir network oluşturdum host network’ ünü kullanmadığım için konteynır ip’ leri ile metrikleri alıyorum, siz belirlediğiniz network topolojisine göre metrikleri toplayabilirsiniz.
global:
scrape_interval: 15s
evaluation_interval: 15s #
scrape_configs:
– job_name: “prometheus”
static_configs:
– targets: [“192.168.16.3:9090”]
– job_name: “cadvisor”
static_configs:
– targets: [“192.168.16.2:8080”]
Evet, şimdi konteynırlarımızı ayağa kaldıralım.

Konteynırlarımız hazır 🙂
Şimdi kontrol edelim.
cAdvisor, burası tamam.

Prometheus, burası da tamam.

Grafana’ ya 3000 portundan login olup yeni şifremizi set edelim, ve buraya tıklayarak grafana için docker dashboard’ ını indirelim.
Json dosyasını Dashboard -> new diyerek import edelim.
Vee metriklerimiz grafana da görsel bir şekilde karşımızda.

Faydalı olması dileklerimle,