Artikel ini akan menjelaskan langkah-langkah bagaimana membuat Apache Kafka daemon autostart.
Jauh sebelum adanya implementasi autostart dari systemd, biasanya saya cukup menggunakan fasilitas /etc/rc.local jika ingin program yang kita pasang bisa otomatis jalan ketika komputer server direstart. Jika script yang digunakan sangat sederhana maka cukup taruh satu baris maka semuanya dapat berjalan dengan baik. Setiap kali server restart maka otomatis script yang pada /etc/rc.local akan otomatis dieksekusi dan daemon dapat berjalan.
Jika ingin dinaikkan lebih lanjut, script yang lebih rumit bisa ditaruh pada /etc/init.d. Tentu saja script tersebut harus disesuaikan dengan format init.d. Kali ini dengan menggunakan systemd yang berada pada GNU/Linux Ubuntu 18.04, kita akan coba membuat sebuah script yang bisa otomatis jalan ketika server dimuat ulang. Program yang akan dijadikan contoh adalah Apache Kafka. Kafka adalah sebuah aplikasi yang digunakan untuk membangun stream processing dan data pipeline secara real time.
Silakan unduh kafka terlebih dahulu di https://kafka.apache.org/downloads dan taruh kafka di tempat yang kita inginkan. Kita bisa menaruhnya pada direktori /opt atau direktori lainnya. Konfigurasi systemd yang terdapat pada GNU/Linux Ubuntu 18.04 terdapat pada direktori /etc/systemd. Script yang akan dibuat akan ditaruh pada direktori system. Cek kembali direktori system yang ada pada GNU/Linux Ubuntu anda.
Pada direktori /etc/systemd/system hanya akan ditaruh symbolic link (alias dari berkas asli), dimana berkas asli dari script yang akan dibuat akan ditaruh pada direktori /home/andrey/scripts. Buat script dengan nama kafka.service dan masukkan baris kode sebagai berikut.
[Unit]
Description=Kafka Daemon
Wants=syslog.target
After=zookeeper.service
[Service]
Type=forking
User=andrey
WorkingDirectory=/home/andrey/program/kafka
ExecStart=/home/andrey/program/kafka/bin/kafka-server-start.sh -daemon /home/andrey/program/kafka/config/server.properties
ExecStop=/home/andrey/program/kafka/bin/kafka-server-stop.sh -daemon /home/andrey/program/kafka/config/server.properties
TimeoutSec=30
Restart=on-failure
[Install]
WantedBy=multi-user.target
Setelah script jadi selanjutnya dibuat symbolic link dengan cara sebagai berikut:
$ sudo ln -s /home/andrey/scripts/kafka.service /etc/systemd/system/kafka.service
Selanjutnya adalah mengaktifkan script yang sudah dibuat dengan systemd sebagai berikut:
$ sudo systemctl enable kafka
Pada script kafka.service diatas ada parameter berikut After=zookeeper.service.
Parameter ini bermakna service kafka akan berjalan setelah service zookeeper berjalan.
Untuk menguji apakah apache kafka daemon autostart ini dapat berjalan dengan baik silakan reboot komputer GNU/Linux Ubuntu 18.04 anda. Hal yang sama untuk Apache Zookeeper ya. Silakan buat berkas baru dan bisa disalin tempel dari berkas kafka.service yang sudah ada. Selamat mencoba.