DEV Community

Emine Nur Arıcı
Emine Nur Arıcı

Posted on

Kafka Kurulumu ve Zabbix JMX Entegrasyonu

Bu doküman; Ubuntu ortamında Kafka kurulumunu, JMX portunun aktif edilmesini, Zabbix Java Gateway kurulumunu ve metriklerin doğrulanmasını kapsar.


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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

BÖLÜM 2: Zabbix Server Tarafı Yapılandırması

Zabbix sunucusunun Java uygulamalarıyla konuşabilmesi için Java Gateway kurulmalı ve yapılandırılmalıdır.

1. Java Gateway Kurulumu

sudo apt update
sudo apt install zabbix-java-gateway -y
sudo systemctl enable --now zabbix-java-gateway
Enter fullscreen mode Exit fullscreen mode

2. Zabbix Server Konfigürasyonu

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

sudo nano /etc/zabbix/zabbix_server.conf
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

3. Servisi Yeniden Başlatma

sudo systemctl restart zabbix-server
Enter fullscreen mode Exit fullscreen mode

BÖLÜM 3: Zabbix Web Arayüzü Konfigürasyonu

Kafka hostunun Zabbix'e eklenmesi adımlarıdır.

Menüye Git: Data Collection (veya Configuration) > Hosts yolunu izle. Sağ üstteki Create host butonuna tıkla.

Host Bilgilerini Gir:

  • Host name: emine-kafka (veya istenilen isim).
  • Templates: Apache Kafka by JMX (Verilerin gelmesini sağlayan kritik şablon).
  • Host groups: Applications veya Linux servers.

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

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
Enter fullscreen mode Exit fullscreen mode

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

Doğrulama Komutu (Kafka Sunucusu):

ubuntu@ubuntu:/opt/kafka$ 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"
Enter fullscreen mode Exit fullscreen mode

Ö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
Enter fullscreen mode Exit fullscreen mode

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

Top comments (0)