🚀 Apache Kafka Kurulumu: Ubuntu 20.04 Üzerinde Adım Adım Rehber
Bu rehberde Apache Kafka 2.8.2’yi Ubuntu 20.04 üzerinde kurmayı, ZooKeeper ile yapılandırmayı ve Producer–Consumer testleriyle doğrulamayı öğreneceksiniz. Ayrıca Kafka’yı systemd hizmeti olarak sürekli çalışır hale getirecek ve güvenliği artıracaksınız.
📌 Bu Rehberde Ne Öğreneceksiniz?
- Kafka için özel kullanıcı oluşturmayı
- Kafka 2.8.2 sürümünü indirip yapılandırmayı
- ZooKeeper ve Kafka systemd servislerini hazırlamayı
- Topik oluşturma, mesaj gönderme ve okuma işlemlerini
- Kafka kullanıcı hesabını güvenli hâle getirmeyi
1. Kafka Kullanıcısı Oluşturma
sudo adduser kafka
1. Kafka’yı izole kullanıcıda çalıştırarak güvenlik artırılır.
- Kullanıcıya sudo izni verin:
sudo adduser kafka sudo
2. Hesaba geçiş yapın:
su -l kafka
2. Kafka 2.8.2 Sürümünü İndirme
1. İndirme dizini oluşturun:
mkdir ~/Downloads
2. Kafka paketini indirin:
curl "https://downloads.apache.org/kafka/2.8.2/kafka_2.13-2.8.2.tgz" -o ~/Downloads/kafka.tgz
3. Ana dizin oluşturun ve içine geçin:
mkdir ~/kafka && cd ~/kafka
4. Arşivi çıkarın:
tar -xvzf ~/Downloads/kafka.tgz --strip 1
- İçeriği doğrudan ~/kafka dizinine açar.
3. Kafka Yapılandırması (server.properties)
1. Dosyayı açın:
nano ~/kafka/config/server.properties
2. Topik silme özelliğini açın:
delete.topic.enable=true
3. Log dizinini düzenleyin:
log.dirs=/home/kafka/logs
- Loglar artık kalıcı dizinde saklanır.
4. ZooKeeper & Kafka systemd Hizmet Dosyaları
- Kafka 2.8.2 sürümü hâlâ ZooKeeper bağımlı çalışır. Bu nedenle iki ayrı servis oluşturuyoruz.
1. Kafka kullanıcısından çıkın:
exit
4.1 📌 ZooKeeper servisi
sudo nano /etc/systemd/system/zookeeper.service
[Unit]
Requires=network.target remote-fs.target
After=network.target remote-fs.target
[Service]
Type=simple
User=kafka
ExecStart=/home/kafka/kafka/bin/zookeeper-server-start.sh /home/kafka/kafka/config/zookeeper.properties
ExecStop=/home/kafka/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
4.2 📌 Kafka servisi
sudo nano /etc/systemd/system/kafka.service
[Unit]
Requires=zookeeper.service
After=zookeeper.service
[Service]
Type=simple
User=kafka
ExecStart=/bin/sh -c '/home/kafka/kafka/bin/kafka-server-start.sh /home/kafka/kafka/config/server.properties > /home/kafka/kafka/kafka.log 2>&1'
ExecStop=/home/kafka/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
1. Systemd’yi yenileyin:
sudo systemctl daemon-reload
2. Servisleri başlatın:
sudo systemctl start zookeeper
sudo systemctl start kafka
3. Durumu kontrol edin:
sudo systemctl status kafka
4. Otomatik başlatma:
sudo systemctl enable zookeeper
sudo systemctl enable kafka
5. Kafka Kurulumunu Test Etme (Producer–Consumer)
- Tekrar kafka kullanıcısına geçin:
su -l kafka
5.1 📌 Topik oluşturma
~/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic TutorialTopic
5.2 📌 Mesaj gönderme (Producer)
echo "Merhaba, Dünya" | ~/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic TutorialTopic > /dev/null
5.3 📌 Mesaj okuma (Consumer)
~/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic TutorialTopic --from-beginning
➡️ Terminalde Merhaba, Dünya çıktısını görmeniz gerekir.
6. Kafka Kullanıcısını Güvenli Hale Getirme
1. Kafka kullanıcısından çıkın:
exit
2. Sudo yetkisini kaldırın:
sudo deluser kafka sudo
3. Kullanıcıyı kilitleyin:
sudo passwd kafka -l
➡️ Artık doğrudan login engellenir.
❓ SSS
1. Kafka 2.8.2 neden ZooKeeper’a ihtiyaç duyar? Bu sürümde metadata yönetimi ZooKeeper tarafından yapılır. KRaft yalnızca Kafka 3+ için uygundur.
2. Topik silmek neden varsayılan olarak kapalıdır? Kafka veri güvenliğini korumak için silmeyi manuel etkinleştirmenizi ister.
3. Kafka hangi portu dinler? Varsayılan broker portu 9092’dir.
4. Consumer geçmiş mesajları nasıl okur? --from-beginning parametresi tüm geçmiş mesajları okumayı sağlar.
5. Kafka kullanıcı hesabı neden kilitlenir? Doğrudan giriş engellenir ve olası saldırı yüzeyi azaltılır.
🎉 Sonuç
Bu rehber sayesinde Apache Kafka 2.8.2’yi Ubuntu 20.04 üzerinde başarıyla kurup yapılandırdınız. ZooKeeper bağımlı mimariyi systemd servisleriyle güvenli şekilde yönettiniz ve mesaj testiyle kurulumu doğruladınız.
Yüksek hacimli veri akışlarını yönetmek için Kafka’yı Rabisu Bulut ortamında hemen deneyebilirsiniz! 🚀🔥