DEV Community

Cover image for Zabbix ile Prometheus Metrik Formatında Kafka İzleme
Erenalp Tekşen for Açıklab

Posted on

Zabbix ile Prometheus Metrik Formatında Kafka İzleme

Prometheus: Zaman Serisi Veritabanı Nedir?

Prometheus, sistemler ve servislerden veri toplamak için kullanılan açık kaynaklı bir zaman serisi veritabanıdır. Verileri "pull" modeli aracılığıyla alır, yani Prometheus, tanımlı hedeflerden düzenli aralıklarla veri çeker. Bu veriler, Prometheus'un yerleşik arayüzünde PromQL (Prometheus Query Language) kullanılarak sorgulanabilir ve görselleştirilebilir. Grafana gibi araçlarla entegrasyonu sayesinde, daha zengin görselleştirme ve kapsamlı dashboard oluşturma imkanı sunar.

Exporter Nedir?

Exporter'lar, çeşitli kaynaklardan metrikleri toplayan ve bu verileri Prometheus'un anlayabileceği formatta HTTP üzerinden sunan araçlardır. Bu, Prometheus'un hedef sistemlerde doğrudan çalışmasına gerek kalmadan dış kaynaklardan veri toplamasını sağlar.

Zabbix ile Prometheus Metriklerinin Entegrasyonu

Zabbix, güçlü bir açık kaynak izleme çözümüdür ve Prometheus metriklerini entegre etmek mümkündür. Bu rehber, Prometheus'dan toplanan metriklerin Zabbix kullanılarak nasıl izlenebileceğini adım adım açıklar.

Gereksinimlerin Listesi:

  • Zabbix sunucusu: İzleme yapılacak ana sistem.
  • Exporter: Bu rehberde kullanılacak olan JMX Exporter.
  • Kafka sunucusu: Metrik kaynağı olarak hizmet veren sunucu.

Docker kullanarak Kafka sunucusunu ve bağlantılı Zookeeper servisini başlatıyoruz.

kafka@kafka:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7e5f046d5fa4 bitnami/zookeeper:latest "/opt/bitnami/script…" 6 minutes ago Up 6 minutes 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp, :::2181->2181/tcp, 8080/tcp kafka_zookeeper_1 5a28b5f7ca84 bitnami/kafka:latest "/opt/bitnami/script…" 6 minutes ago Up 6 minutes 0.0.0.0:9091-9092->9091-9092/tcp, :::9091-9092->9091-9092/tcp, 0.0.0.0:9999->9999/tcp, :::9999->9999/tcp kafka_kafka_1 
Enter fullscreen mode Exit fullscreen mode

Adım 1: Metrik Seçimi ve Tanımlama

Kafka sunucumda çalışan ve 192.168.1.9:9091 adresinde erişilebilen Exporter üzerinden, belirli bir Kafka topic'i için trafik metriklerini seçiyorum.

Image description

Seçilen metrikler, topic üzerinden gelen ve giden veri akışını ve talep sayısını içerir.

kafka_server_brokertopicmetrics_meanrate{name="BytesInPerSec",topic="test_topic",} 82.34778932997635 kafka_server_brokertopicmetrics_meanrate{name="BytesOutPerSec",topic="test_topic",} 112.90497508080351 kafka_server_brokertopicmetrics_meanrate{name="TotalFetchRequestsPerSec",topic="test_topic",} 
Enter fullscreen mode Exit fullscreen mode

Adım 2: Zabbix Template Oluşturma

Zabbix içinde "Prometheus Metrics" adında bir template oluşturarak, seçilen metrikleri bu template altına item olarak ekleyeceğim.

Image description

Adım 3: HTTP Agent oluşturulmalı

Zabbix sunucusunda, Exporter'dan metrikleri çekecek bir HTTP Agent kuruyorum. Bu agent, metriklerin düzenli olarak Zabbix sunucusuna aktarılmasını sağlar.

Yeni bir item oluşturarak "Prometheus Metrics" template'ine ekliyorum.

Image description

Item yapılandırmasını tamamladıktan sonra, 'Test' butonuna tıklayarak HTTP Agent'ın düzgün çalışıp çalışmadığını kontrol ediyorum.

Image description

Adım 4: Bağımlı Öğelerin (Dependent Item) Oluşturulması

Bağımlı öğeler, ana metriklerden türetilen ve daha detaylı analiz için kullanılan veri öğeleridir.

Bu adımda, 'BytesInPerSec' metriğine dayalı olarak "topic_bytes_in_rate" adında bir dependent item oluşturuyorum. Bu dependent item, belirli bir Kafka topic'inden gelen veri akış hızını temsil eder ve ölçümleri daha spesifik bir kontekste yerleştirir.

Image description

Oluşturduğum dependent item için preprocessing sekmesine giderek "add" butonuna tıklayarak yeni bir preprocessing kuralı ekliyorum. Bu kural, Prometheus'un metrik formatını Zabbix'in anlayacağı formata dönüştürür.

Image description

Kullanılacak parametre, Prometheus Pattern'dir ve metrik değerlerini doğru bir şekilde parse etmek için önceden belirlenen Prometheus sorgusu kullanılır.

Örneğin, kafka_server_brokertopicmetrics_meanrate{name="BytesInPerSec", topic="test_topic"} metriği, Kafka sunucusundaki belirli bir topic'e gelen veri miktarını ölçer. Bu örnek metrik, rehberimizde kullanılan örnek bir metrik değeridir.

Bu sürecin çalışması için, seçilen her metrik için ayrı bir dependent item oluşturulmalıdır.

Adım 5: Kafka Server'a Template Ekleme

Oluşturduğumuz bu template'i, izlemek istediğimiz Kafka sunucusuna ekliyoruz.

Image description

Adım 6: Metrikleri Kontrol Etme

Son adım olarak, Zabbix arayüzünden 'Monitoring > Hosts > Kafka Sunucusu > Latest Data' yolunu takip ederek sunucumuzda izlemekte olduğumuz metriklerin güncel verilerine ulaşıyoruz.

Image description

Sonuç

Bu rehber, Prometheus ve Zabbix kullanarak Kafka sunucusundan metrik toplama sürecini adım adım ele almakta ve bu süreci nasıl yöneteceğinizi açıklamaktadır. Prometheus'un güçlü zaman serisi veri toplama kabiliyeti ve Zabbix ile olan entegrasyonu sayesinde, karmaşık sistemlerin izlenmesi ve yönetilmesi kolaylaşmaktadır.

Top comments (0)