Latar Belakang
Pertama kali mendengar Monit sekitar setahun yang lalu ketika pertama kali menghadapi aplikasi yang sering crash karena tidak mampu menerima lonjakan request secara tiba-tiba.
Ketika itu senior kami mengenalkan Monit, saat itu kami menggunakan Monit untuk selalu memastikan bahwa aplikasi kami selalu berjalan, dan apabila crash maka Monit akan menjalankannya kembali.
Microservice
Sekarang kami sedang membangun aplikasi berbasis microservice, aplikasi kami memiliki beberapa modul yg memiliki fungsi berbeda. Untuk membantu memonitoring modul-modul tersebut kami mencoba untuk menggunakan Monit.
Sebelum benar-benar menggunakan Monit kami google-google dulu, dan ternyata Monit memiliki fasilitas monitoring, start dan stop dari halaman web. Yeeayyy :)
Instalasi pada ubuntu
Kebetulan kami menggunakan OS ubuntu 14.04 dan 16.04, gunakan command seperti dibawah ini untuk instalasi Monit:
sudo apt-get install monit
Setelah selesai menginstall Monit otomatis akan dijalankan, edit file /etc/monit/monitrc :
set httpd port 2812 and
allow 0.0.0.0/0.0.0.0 # allow all host to connect to the server and
allow admin:monit # require user 'admin' with password 'monit'
Kemudian restart Monit :
Ubuntu 14.04
- Ubuntu 16.04
sudo systemctl restart monit.services
sudo service monit restart
Setelah restart, bisa cek halaman webnya ke host tersebut dengan port 2182, masukkan username & password bila diminta.
Aplikasi Java dan Monit
Untuk dapat memonitor aplikasi Java dengan Monit, diperlukan shell script untuk start dan stop yang isinya kira-kira sebagai berikut :
- Start App
echo $$ > /home/ubuntu/app/app.pid;
exec /usr/bin/java -jar app.jar
kill $(cat /home/ubuntu/app/app.pid);
rm /home/ubuntu/app/app.pid
Kemudian buat file app pada directory /etc/monit/conf.d, yang isinya kira-kira sebagai berikut :
check process app with pidfile /home/ubuntu/app/app.pid
start program = "/home/ubuntu/app/start-app.sh"
stop program = "/home/ubuntu/app/stop-app.sh"
if cpu > 20% for 5 cycles then alert
if totalmem > 256 MB for 5 cycles then alert
if children > 2 then alert
Lalu restart Monit, dan buka web monitoringnya, dan tunggu beberapa saat Monit akan mengecek apakah aplikasi tersebut sedang berhenti atau tidak, bila berhenti maka Monit akan menjalankannya.
Untuk memberhentikan atau menjalankan aplikasi tersebut kita bisa melakukannya melalui web Monit. Sekian dan semoga bermanfaat. :)
No comments:
Post a Comment