Dalam sistem operasi Linux, Supervisor adalah sebuah sistem client/server yang dapat anda gunakan untuk melakukan monitoring dan kontrol pada proses yang berjalan pada aplikasi berbasis UNIX. Supervisor dapat membantu anda untuk mengelola aplikasi agar berjalan seperti sebuah service, selain itu supervisor dapat membantu anda untuk memantau aplikasi anda.
Untuk menginstall dan menggunakan Supervisor sebenarnya cukup mudah. Namun karna kita akan menggunakan Supervisor untuk mengontrol aplikasi “adnanh/webhook”, pastikan anda telah melakukan install dan konfigurasi(dapat anda lihat pada artikel : Mengkonfigurasi Adnanh Webhook Dengan Github Webhook Pada Ubuntu Server). Kemudian, tahap-tahap untuk meginstall dan menggunakan supervisor adalah sebagai berikut, yang pertama instalasi supervisor, kemudian konfigurasi supervisor, dan mengontrol proses di supervisor.
1. Instalasi Supervisor
Instalasi supervisor ini cukup mudah, lakukan “apt update” kemudian lakukan “apt install supervisor”. Anda dapat menggunakan perintah di bawah ini,
sudo apt update && sudo apt install supervisor
Setelah itu, cek apakah aplikasi anda telah ter instal dengan perintah di bawah ini,
sudo systemctl status supervisor
Jika service supervisor telah berhasil berjalan maka akan menampilkan output seperti di bawah ini,
? supervisor.service - Supervisor process control system for UNIX
Loaded: loaded (/lib/systemd/system/supervisor.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2022-06-04 17:24:14 CST; 1min 31s ago
Docs: http://supervisord.org
Main PID: 8902 (supervisord)
Tasks: 1 (limit: 1115)
CGroup: /system.slice/supervisor.service
??8902 /usr/bin/python /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
Jun 04 17:24:14 iZk1adhb0tq3inod6cjlahZ systemd[1]: Started Supervisor process control system for UNIX.
Jun 04 17:24:16 iZk1adhb0tq3inod6cjlahZ supervisord[8902]: 2022-06-04 17:24:16,479 CRIT Supervisor running as root (no user in config file)
Jun 04 17:24:16 iZk1adhb0tq3inod6cjlahZ supervisord[8902]: 2022-06-04 17:24:16,487 WARN No file matches via include "/etc/supervisor/conf.d/*.conf"
Jun 04 17:24:16 iZk1adhb0tq3inod6cjlahZ supervisord[8902]: 2022-06-04 17:24:16,520 INFO RPC interface 'supervisor' initialized
Jun 04 17:24:16 iZk1adhb0tq3inod6cjlahZ supervisord[8902]: 2022-06-04 17:24:16,521 CRIT Server 'unix_http_server' running without any HTTP authentication checking
Jun 04 17:24:16 iZk1adhb0tq3inod6cjlahZ supervisord[8902]: 2022-06-04 17:24:16,523 INFO supervisord started with pid 8902
Setelah supervisor berhasil diinstal, maka langkah selanjutnya adalah melakukan konfigurasi dengan proses atau aplikasi anda.
2. Konfigurasi Supervisor dengan Proses
Seperti yang dapat anda lihat pada log service supervisor. Konfigurasi supervisor berada pada direktori “/etc/supervisor/conf.d/*.conf“. Oleh karena itu pertama-tama buatlah file baru untuk konfigurasi Supervisor dengan webhook menggunakan perintah,
nano /etc/supervisor/conf.d/supervisor-webhook.conf
Setelah itu, masukkan konfigurasi untuk supervisor anda,
[program:supervisor-webhook]
command=bash -c "systemctl stop webhook && webhook -hooks /namauseranda/webhook/hooks-config.json -verbose"
autostart=true
autorestart=true
user=namauseranda
numprocs=1
process_name=%(program_name)s_%(process_num)s
redirect_stderr=true
stdout_logfile=/namauseranda/webhook/supervisor-webhook.out.log
environment=LANG=en_US.UTF-8,LC_ALL=en_US.UTF-8,HOME="/namauseranda",USER="namauseranda"
Sedikit penjelasan terhadap file konfigurasi di atas.
- comand : Adalah perintah untuk memulai suatu proses atau aplikasi anda. Anda juga dapat menggunakan perintah basic shell.
- namauseranda : Adalah nama user dari sistem Linux anda, pada contoh ini saya menyimpan konfigurasi webhook pada folder home linux saya.
- stdout_logfile : Adalah lokasi saya menyimpan log file dari supervisor saya.
Setelah menyimpan konfigurasi tersebut, lakukan perintah di bawah ini untuk mengecek apakah konfigurasi kita telah tersimpan,
sudo supervisorctl reread
Jika output dari perintah di atas adalah seperti di bawah ini, maka artinya file konfigurasi anda siap digunakan supervisor.
supervisor-webhook: available
Langkah selanjutnya adalah melakukan update pada supervisor agar menggunakan file konfigurasi baru yang telah anda tambahkan dengan perintah,
sudo supervisorctl update
Jika berhasil, maka perintah di atas akan mengeluarkan informasi seperti di bawah ini. Yang artinya konfigurasi anda telah berhasil ditambahkan ke dalam process group supervisor.
supervisor-webhook: added process group
Jika supervisor dan process anda sudah berhasil berjalan, langkah selanjutnya adalah mengecek apakah adnanh/webhook anda telah berhasil berjalan pada Supervisor. Untuk langkah ini anda hanya perlu melakukan proses push pada repository anda(Artikel terkait : Mengkonfigurasi Adnanh Webhook Dengan Github Webhook Pada Ubuntu Server). Setelah anda berhasil melakukan push to remote origin. Kemudian cek log dari supervisor anda dengan perintah,
sudo tail /namauseranda/webhook/supervisor-webhook.out.log
Jika log supervisor anda telah memuncul log seperti dibawah ini, artinya process dari adnanh/webhook telah berhasil berjalan di Supervisor.
[webhook] 2022/06/04 17:42:01 deploy-production-namawebsiteanda hook triggered successfully
[webhook] 2022/06/04 17:42:01 Completed 200 OK in 461.787µs
[webhook] 2022/06/04 17:42:01 executing /namauseranda/webhook/deploy-production-namawebsiteanda.sh (/namauseranda/webhook/deploy-production-namawebsiteanda.sh) with arguments ["/namauseranda/webhook/deploy-production-namawebsiteanda.sh"] and environment [] using /var/www/namawebsiteanda as cwd
[webhook] 2022/06/04 17:42:03 command output: Agent pid 9487
Updating 2874ac4..aa46c71
Fast-forward
test.spv | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[webhook] 2022/06/04 17:42:03 finished handling deploy-production-namawebsiteanda
Selamat, anda telah berhasil memasang supervisor untuk adnanh/webhook. Sekarang anda tidak perlu khawatir jika server anda akan melakukan reboot, karena supervisor akan menyalakan adnanh/webhook secara otomatis dengan konfigurasi yang telah anda masukkan.
3. Mengontrol Proses di Supervisor
Supervisor adalah sebuah proses manager yang dapat mengontrol dan memonitor proses. Ketika anda menjalankan perintah atau proses pada supervisor, anda dapat melakukan monitoring dengan mudah. Masukan perintah di bawah ini untuk mulai mengontrol dan melihat proses yang berjalan pada supervisor.
sudo supervisorctl
Setelah memasukkan perintah di atas, anda akan diperlihatkan daftar proses yang sedang berjalan di bawah supervisor.
supervisor-webhook:supervisor-webhook_0 RUNNING pid 9271, uptime 0:02:26
supervisor>
Selain memperlihatkan proses yang berjalan, anda juga akan masuk pada console supervisor untuk mengontrol proses yang ada di dalamnya. Kemudian untuk memeriksa perintah apa saja yang dapat anda lakukan dalam console supervisor, masukkan perintah “help“
supervisor> help
default commands (type help ):
=====================================
add exit open reload restart start tail
avail fg pid remove shutdown status update
clear maintail quit reread signal stop version
Anda dapat menghentikan proses anda yang sedang berjalan dengan perintah,
supervisor> stop supervisor-webhook
Atau anda dapat menjalankan proses yang telah anda simpan pada konfigurasi supervisor dengan perintah,
supervisor> start supervisor-webhook
Masih banyak perintah yang anda dapat gunakan mengontrol proses anda, silahkan anda coba berbagai macam perintah untuk mengontrol hingga memonitoring proses anda. Langkah selanjutnya untuk keluar dari supervisor cukup mudah, masukan perintah “exit” maka anda akan keluar dari console supervisor dan kembali ke console unix anda.
Selamat, anda telah berhasil menjalan supervisor… Anda dapat menggunakan supervisor untuk memonitor aplikasi aplikasi anda. Sampai jumpa di artikel berikutnya…