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
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ı
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
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ı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
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"
Ö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.

Top comments (0)