Kafka Kurulumu ve Zabbix JMX Entegrasyonu

Published: (December 8, 2025 at 05:45 AM EST)
3 min read
Source: Dev.to

Source: Dev.to

Bölüm 1: Kafka Sunucusu Kurulumu ve Yapılandırması (Host Tarafı)

1. Java Kurulumu ve Hazırlık

Kafka’nın çalışması için Java gereklidir.

sudo apt update
sudo apt install openjdk-17-jdk -y
java -version

2. Kafka’nın İndirilmesi ve Kurulması

Kafka 3.6.1 sürümü indirilir, arşivden çıkarılır ve /opt dizinine taşınır.

cd /tmp
wget https://archive.apache.org/dist/kafka/3.6.1/kafka_2.13-3.6.1.tgz

# Çıkart
tar -xvzf kafka_2.13-3.6.1.tgz

# Taşı
sudo mv kafka_2.13-3.6.1 /opt/kafka

# Klasöre gir
cd /opt/kafka

3. Servislerin Başlatılması (JMX Aktif)

Önce Zookeeper, ardından JMX portu (9999) tanımlanarak Kafka başlatılır.

# Zookeeper başlat
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

# JMX Portunu tanımla ve Kafka'yı başlat
export JMX_PORT=9999
bin/kafka-server-start.sh -daemon config/server.properties

4. Kontroller

Servislerin ve portun çalıştığı doğrulanır.

# Processleri gör (Kafka ve QuorumPeerMain görmelisin)
jps

# 9999 Portu dinleniyor mu? (Çıktı boş dönmemeli)
ss -tpln | grep 9999

Bölüm 2: Zabbix Server Tarafı Yapılandırması

1. Java Gateway Kurulumu

sudo apt update
sudo apt install zabbix-java-gateway -y
sudo systemctl enable --now zabbix-java-gateway

2. Zabbix Server Konfigürasyonu

Konfigürasyon dosyası düzenlenerek Java Gateway tanıtılır.

sudo nano /etc/zabbix/zabbix_server.conf

Dosya içerisinde aşağıdaki satırlar bulunur ve düzenlenir (veya eklenir):

# Gateway'in nerede olduğu (Aynı makinede olduğu için 127.0.0.1)
JavaGateway=127.0.0.1

# Gateway'in dinlediği port (Varsayılan 10052)
JavaGatewayPort=10052

# Java izleyecek işçi sayısı (Burası 0 ise çalışmaz, en az 5 yap)
StartJavaPollers=5

3. Servisi Yeniden Başlatma

sudo systemctl restart zabbix-server

Bölüm 3: Zabbix Web Arayüzü Konfigürasyonu

Kafka hostunun Zabbix’e eklenmesi adımları:

  1. Menüye Git: Data Collection (veya Configuration) → Hosts → sağ üstteki Create host butonuna tıkla.
  2. Host Bilgilerini Gir:
    • Host name: emine-kafka (veya istediğiniz isim).
    • Templates: Apache Kafka by JMX (verilerin gelmesini sağlayan kritik şablon).
    • Host groups: Applications veya Linux servers.
  3. Bağlantı Ayarlarını (Interface) Yap:
    • Interfaces satırındaki Add butonuna bas ve JMX seç.
    • IP Address: 192.168.100.1 (Kafka makinesinin IP’si).
    • Port: 9999

Zabbix host ekleme ekranı

  1. Kaydet ve İzle:
    • Add butonuna tıkla.
    • Listede Availability sütunundaki JMX ikonunun gri renkten YEŞİL renge dönmesi beklenir (1‑2 dakika sürebilir).

Bölüm 4: Sorun Giderme (SSL/Auth Hatası)

Eğer ikon yeşil yanmazsa ve aşağıdaki hata alınırsa:

HATA: SSL peer shut down incorrectly: service:jmx:rmi:///jndi/rmi://192.168.100.1:9999/jmxrmi

Çözüm Adımları

Kafka durdurulur ve SSL/kimlik doğrulama devre dışı bırakılarak IP adresi sabitlenir.

cd /opt/kafka
bin/kafka-server-stop.sh

# SSL ve Auth kapatılır, Hostname sabitlenir (IP adresini kendi yapınıza göre düzenleyin)
export KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.100.1"

export JMX_PORT=9999
bin/kafka-server-start.sh -daemon config/server.properties

Bölüm 5: Veri Doğrulama (JmxTool Testi)

Zabbix’e gelen verinin doğruluğunu teyit etmek için Kafka sunucusu üzerinde JmxTool kullanılır. Zabbix’teki değer ile terminal çıktısı karşılaştırılır.

Senaryo

  • Item: Produce request total time, mean
  • Key: jmx["kafka.network:type=RequestMetrics,name=TotalTimeMs,request=Produce","Mean"]
  • Zabbix’te görülen değer: 0

Zabbix item ekranı

Doğrulama Komutu (Kafka Sunucusu)

cd /opt/kafka

JMX_PORT="" bin/kafka-run-class.sh kafka.tools.JmxTool \
  --jmx-url service:jmx:rmi:///jndi/rmi://127.0.0.1:9999/jmxrmi \
  --object-name "kafka.network:type=RequestMetrics,name=TotalTimeMs,request=Produce" \
  --attributes Mean \
  --date-format "YYYY-MM-dd HH:mm:ss"

Örnek Çıktı

WARNING: The 'kafka.tools' package is deprecated...
Trying to connect to JMX url: service:jmx:rmi:///jndi/rmi://127.0.0.1:9999/jmxrmi
"time","kafka.network:type=RequestMetrics,name=TotalTimeMs,request=Produce:Mean"
2025-12-08 07:21:43,0.0
2025-12-08 07:21:45,0.0
2025-12-08 07:21:47,0.0

Sonuç: Terminal çıktısı da 0.0 döndüğü için Zabbix’e gelen veri doğrudur.

Back to Blog

Related posts

Read more »