Kafka Kurulumu ve Zabbix JMX Entegrasyonu
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ı:
- Menüye Git: Data Collection (veya Configuration) → Hosts → sağ üstteki Create host butonuna tıkla.
- 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.
- Host name:
- 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
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)
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.