Docker Konteynır Metrik Toplama (Monitoring)

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.

Image 10 1024x109

Konteynırlarımız hazır 🙂

Şimdi kontrol edelim.

cAdvisor, burası tamam.

Image 11 1024x556

Prometheus, burası da tamam.

Image 12 1024x432

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.

Image 13 1024x470

Faydalı olması dileklerimle,

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir