Lompat ke konten
Home » Menginstall dan Menggunakan Supervisor Untuk Mengelola Service Webhook Pada Ubuntu

Menginstall dan Menggunakan Supervisor Untuk Mengelola Service Webhook Pada Ubuntu

  • GIT

​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…

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan.