Cara Install Apache Kafka di VPS Ubuntu

Hai, Sobat Jagoan! Artikel kali ini akan membahas cara instalasi Apache Kafka versi 3.8.1 dan 4.0.0. Penting untuk kamu ketahui bahwa terdapat perubahan besar pada Kafka versi terbaru (4.0.0), di mana ZooKeeper tidak lagi digunakan. Sebagai gantinya, Kafka sekarang memakai mode baru yang disebut KRaft (Kafka Raft Metadata mode), yaitu sistem penyimpanan metadata internal milik Kafka sendiri. Sementara itu, Kafka versi 3.x seperti 3.8.1 masih tetap menggunakan ZooKeeper sebagai dependensi utamanya untuk manajemen cluster.

Bagi kamu yang baru mengenal Kafka, jangan khawatir, artikel ini akan membantu kamu memahami perbedaan teknis antara dua versi tersebut, serta langkah-langkah instalasinya sesuai versi yang kamu butuhkan.

Apa itu Apache Kafka?

Apache Kafka adalah sebuah platform open-source yang dirancang untuk menangani aliran data secara real-time, cepat, dan terdistribusi. Kafka digunakan untuk mengirim, menerima, menyimpan, dan memproses data dalam jumlah besar antar layanan atau aplikasi.

Secara teknis, Kafka bekerja dengan konsep publish-subscribe, di mana ada producer (pengirim data) dan consumer (penerima data) yang berkomunikasi melalui topic (saluran data). Kafka menyimpan data tersebut dalam bentuk log yang tahan lama (durable), sehingga consumer bisa membaca ulang jika diperlukan.

Kafka banyak digunakan dalam arsitektur microservices, big data pipelines, event-driven systems, hingga sistem monitoring dan log. Kafka juga sangat scalable dan fault-tolerant, artinya dapat diandalkan untuk kebutuhan produksi besar.

Kamu perlu ketelitian dalam membaca artikelnya Sob, supaya tidak tertukar membaca konfigurasi untuk instalasi versi 3.8.1 atau 4.0.0. Info juga, produk layanan VPS Jagoan Hosting yang dipakai pada artikel ini yaitu Ubuntu versi 22.04

Step 1: Buat Koneksi SSH VPS

Pertama, buat koneksi SSH ke VPS kamu melalui terminal. Jika menggunakan sistem operasi Windows, kamu bisa menggunakan PuTTY.

Step 2: Membuat Pengguna untuk Kafka

Sebelum mulai instalasi, update list package dan perbarui package lama ke versi terbaru dulu.

				
					sudo apt update && sudo apt upgrade -y
				
			

Server Kafka sebaiknya dijalankan dengan user khusus demi alasan keamanan dan manajemen yang baik.

				
					sudo adduser kafka
				
			

Selanjutnya, ikuti setiap pop-up untuk mengisi informasi user ‘kafka’ tersebut, seperti password dan detail lainnya.

Agar user kafka bisa menjalankan perintah dengan hak akses administrator (sudo), tambahkan user ‘kafka’ ke group sudo. Karena membutuhkan privileges admin untuk menginstal dependensi kafka.

				
					sudo adduser kafka sudo
				
			

Lalu masuk sebagai user kafka dengan command:

				
					su -l kafka
				
			

Fyi, tujuan menggunakan user khusus (kafka) agar instalasi dan file Kafka tidak bercampur dengan user utama. Ini juga memudahkan proses troubleshooting.

Step 3: Install Java

Kalau kamu belum menginstal JDK Java command ini akan menampilkan saran instalasi versi Java yang dibutuhkan untuk menjalankan Kafka. Tapi, kalau sudah instal Java akan menampilkan versi Java yang terinstal.

				
					java -version
				
			

Kafka umumnya membutuhkan Java JDK versi 11 atau versi diatasnya. Untuk menginstalnya, jalankan:.

				
					sudo apt install openjdk-11-jdk -y
				
			

ATAU kalau mau menginstal versi JDK yang direkomendasikan secara default oleh sistem:

				
					sudo apt install default-jdk -y
				
			

Tapi kalau instal Kafka versi 4.0.0 instal jdk versi 17 ya, Sob!

				
					sudo apt install openjdk-17-jdk -y
				
			

Step 4: Download dan Ekstrak Kafka

Setelah berhasil membuat user untuk Kafka dan instal JDK Java, buat direktori Downloads untuk menyimpan file Kafka.

				
					mkdir ~/Downloads
				
			

Lalu, unduh kafka dengan command:

Versi 3.8.1

				
					curl -L https://dlcdn.apache.org/kafka/3.8.1/kafka_2.12-3.8.1.tgz -o ~/Downloads/kafka.tgz
				
			

Versi 4.0.0

				
					curl -L "https://downloads.apache.org/kafka/4.0.0/kafka_2.13-4.0.0.tgz" -o ~/Downloads/kafka.tgz
				
			

Perintah tersebut akan mendownload file berformat .tgz. Kamu bisa mengecek situs resmi Kafka untuk melihat rilis Kafka jika diperlukan.

Selanjutnya, buat direktori instalasi Kafka dan masuk ke dalamnya.

				
					mkdir ~/kafka && cd ~/kafka
				
			

Ekstrak file download kafka tadi ke dalam direktori ini.

				
					tar -xvzf ~/Downloads/kafka.tgz --strip 1
				
			

Command –strip 1 digunakan agar isi file langsung diekstrak ke dalam folder ~/kafka dan tidak membuat folder tambahan

Step 5: Konfigurasi Server Kafka

Edit file konfigurasi utama Kafka.

				
					sudo nano ~/kafka/config/server.properties
				
			

Lakukan modifikasi berikut:

  1. Aktifkan opsi penghapusan topik Kafka (opsional tapi disarankan untuk development)
				
					delete.topic.enable = true
				
			
1-delete-topic-kafka-install-kafka-di-vps
  1. Ubah direktori penyimpanan log Kafka dari /tmp ke lokasi yang lebih permanen. Karena Kafka menyimpan semua pesan di folder log. Jika kamu menggunakan folder /tmp, data bisa hilang saat reboot karena itu adalah direktori sementara.
				
					log.dirs= /home/kafka/logs
				
			
3-unit-service-install-kafka-di vps-ubuntu
  1. Kalau kamu instal Kafka versi 4.0.0 kamu periksa juga bagian ini, pastikan ada seperti ini. Kalau tidak ada kamu tambahkan didalam server.properties
				
					process.roles=broker,controller
node.id=1
controller.quorum.voters=1@localhost:9093
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
				
			

Sampai di sini, kamu sudah mengkonfigurasi kafka dan membuat unit file systemd untuk menjalankan dan mengijinkan Kafka server.

Step 6: Membuat File Unit systemd untuk Kafka dan ZooKeeper

Sebelum Kafka bisa berjalan, kamu perlu menjalankan ZooKeeper. Karena Kafka bergantung padanya (kecuali jika menggunakan metode KRaft pada versi terbaru). Metode ZooKeeper ini lebih umum untuk pemula.

Catatan: Untuk versi 4.0.0 kamu bisa menggunakan metode KRaft, jadi lewati saja langkah terkait ZooKeeper, langsung jalankan command untuk membuat file systemd service untuk kafka. Lihat caranya ada di bawah konfigurasi ZooKeeper ini.

Buat unit zookeeper dengan command:

				
					sudo nano /etc/systemd/system/zookeeper.service
				
			

Lalu masukkan kode berikut di dalamnya:

				
					[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-zookepeer-install-kafka-vps-ubuntu

Unit di atas mendefinisikan bagaimana ZooKeeper dijalankan sebagai layanan. Restart=on-abnormal memastikan ZooKeeper akan restart kalau terjadi crash.

CTRL+X, Y lalu ENTER untuk menyimpan.

Agar perubahan di ZooKeeper dapat dibaca jalankan command:

				
					sudo systemctl daemon-reload
				
			

Kemudian jalankan command berikut untuk membuat file systemd service untuk Kafka:

				
					sudo nano /etc/systemd/system/kafka.service
				
			

Dan masukkan kode berikut ini.

				
					[Service]
Type=simple
User=kafka
ExecStart=/home/kafka/kafka/bin/kafka-server-start.sh /home/kafka/kafka/config/server.properties
ExecStop=/home/kafka/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

StandardError=journal

[Install]
WantedBy=multi-user.target
				
			
5-buat-file unit systemd-kafka-install-vps-ubuntu

Langkah UUID ini hanya untuk versi 4.0.0

Kemudian, jalankan command berikut ini untuk inisialisasi cluster dan buat UUID.

				
					./bin/kafka-storage.sh random-uuid
				
			

Copy ke text editor kode UUID yang dihasilkan.

11-kode-uuid-install-kafka-versi 4-vps-ubuntu

Jika sudah, jalankan command untuk memformat direktori log Kafka dengan UUID tersebut dan membuatnya siap digunakan.

				
					./bin/kafka-storage.sh format -t paste-kode-UUID-disini -c config/ server.properties
				
			

Command di bawah ini untuk menerapkan perubahan pada ZooKeeper dan systemd.

				
					sudo systemctl daemon-reload
				
			

Step 7: Menjalankan Kafka dan ZooKeeper (kalau pakai KRaft lewati langkah terkait ZooKeeper)

Untuk menjalankan Kafka, pertama kamu harus memulai ZooKeeper dulu dan pastikan statusnya.

				
					sudo systemctl start zookeeper
sudo systemctl status zookeeper
				
			

Outputnya:

7-status-zookeeper-install-kafka-vps-ubuntu

Berikutnya  jalankan Kafka dengan command:

				
					sudo systemctl start kafka
sudo systemctl status kafka
				
			

Kamu akan mendapatkan output seperti berikut.

6-status-kafka-install-vps-ubuntu

Kafka berhasil berjalan, ia aktif dan listen di port 9092.

Supaya Kafka dan ZooKeeper otomatis dijalankan ketika server mengalami reboot, jalankan command:

				
					sudo systemctl enable zookeeper
sudo systemctl enable kafka
				
			
				
					Outputnya akan seperti:
$ sudo systemctl enable zookeeper
Created symlink /etc/systemd/system/multi-user.target.wants/zookeeper.service → /etc/systemd/system/zookeeper.service.

$ sudo systemctl enable kafka
Created symlink /etc/systemd/system/multi-user.target.wants/kafka.service → /etc/systemd/system/kafka.service.

				
			

Step 8: Memeriksa Hasil Instalasi Kafka

Membuat topik baru karena di Kafka menggunakan topik untuk mengelompokkan pesan.

Buat topik bernama TutorialTopic dengan command:

				
					~/kafka/bin/kafka-topics.sh --create \
  --bootstrap-server localhost:9092 \
  --replication-factor 1 \
  --partitions 1 \
  --topic TutorialTopic
				
			

Kirim pesan pertama ke Kafka

Sekarang publish string ‘Hello World’ ke TutorialTopic artinya ini mengirimkan pesan ke Kafka.

				
					echo "Hello, World" | ~/kafka/bin/kafka-console-producer.sh \
  --bootstrap-server localhost:9092 \
  --topic TutorialTopic > /dev/null
				
			

Terima pesan pertama

Selanjutnya buka terminal baru (masih user sebagai kafka).  Terminal ini akan menerima pesan Kafka disebut sebagai terminal konsumer. Kalau menggunakan koneksi SSH VPS  di PuTTY kamu tinggal klik kanan dibagian atas pada terminal aktif saat ini > pilih New session dan jalankan:

				
					~/kafka/bin/kafka-console-consumer.sh \
  --bootstrap-server localhost:9092 \
  --topic TutorialTopic \
  --from-beginning
				
			

Kamu akan melihat output:

8-buat-topics-kafka-install-vps-ubuntu

Kirim pesan kedua

Tes lagi dengan kembali ke terminal pertama dan jalankan:

				
					echo "Hello World from Jagoan Hosting!" | ~/kafka/bin/kafka-console-producer.sh \
  --bootstrap-server localhost:9092 \
  --topic TutorialTopic > /dev/null
				
			

Kalau berhasil output di terminal kedua (consumer) seperti berikut ini.

9-membuat-topics-kafka-install-vps-ubuntu

Tekan CTRL+C untuk berhenti menerima pesan.

Selamat! Kamu telah berhasil menginstal dan menjalankan Apache Kafka secara manual. Kafka sekarang siap digunakan untuk belajar sistem streaming data real-time. Kalau ada yang masih bikin bingung, jangan ragu hubungi Tim Support Jagoan Hosting ya, Sob!

Related Posts
Tutorial Cara Pantau monitoring Kinerja VPS anda

Hai, Sob! Buat kamu yang udah kepo sama cara pantau monitoring kinerja VPS kamu, yuk ikutin tutorialnya dibawah ini.Tapi, sebenernya Read more

Tutorial Cara Migrasi File Server Website ke VPS tanpa cpanel

Hai, Sob, kamu suka bingung gimana caranya migrasi file server website ke VPS tanpa cPanel? Yuk, kamu harus banget pantengin Read more

Tutorial Login Ke SSH Secara Otomatis

Kamu ingin melakukan login SSH secara otomatis? Gak perlu bingung karena kamu bisa ikutin tutorial di bawah ini untuk melakukan Read more

Tutorial Cara Mengamankan Akses ke Layanan VPS Anda

Hai, Sob! Tahukah kamu, Mengamankan akses ke VPS kamu sangat penting tak terkecuali untuk akses dari SSH. Wah, gimana tuh Read more