Monday, July 16, 2018

Tentang Monit

Monit
Hampir dua minggu ini saya berkutat dengan monitoring service buat server kantor. Dan jujur, mungkin karena saya yang masi anak kemaren sore di perserveran, monitoring masi saya lakukan serba manual, pake bash script. xD

Well, kemudian saya menemukan thread yang membahas tentang monitoring, dan saya jadi tersadar, selama ini saya melakukan hal bodoh. hahahaha... bisa cek thread nya disini.

Monitoring memang bisa kita lakukan secara manual dengan bash script. Namun, perhatikan lagi berapa kata please yang ditulis pada thread diatas. Itu sudah jelas menunjukkan bahwa bash script memang bisa digunakan untuk monitoring, hanya saja bisa dibilang sangat riskan monitoring menjadi tidak tepat penanganannya.

Di thread tadi ada banyak tool monitoring, namun yang sudah terinstall namun belum saya eksplor lebih adalah monit. Lalu apa sih monit itu? Monit, kalo saya terjemahkan pake google translate dari situs resminya : Monit adalah utilitas Open Source kecil untuk mengelola dan memonitor sistem Unix. Monit melakukan pemeliharaan dan perbaikan otomatis dan dapat melakukan tindakan kausal yang bermakna dalam situasi kesalahan.

Ya secara gampangnya monit adalah service/layanan yang punya kemampuan memonitor kondisi server ataupun komputer kita. Misalnya memonitor service yang running pada server, memberikan penanganan pada service dan melaporkan pada sysadmin apabila terjadi sesuatu pada service.

Meskipun penjelasan pada situs resmi monit mengatakan "memonitor sistem Unix", namun monit tersedia juga pada sistem operasi Linux dan MacOS. Sayang yah di Windows ndak di support. :P

Baiknya pengembang monit, mereka menyediakan precompiled binary file, sehingga kita bisa download langsung binary file sesuai dengan arsitektur sistem operasi yang kita gunakan. Atau kalo anda ndak mau repot, monit juga sudah tersedia di repository distribusi Linux ternama seperti Debian, Centos dan turunannya. Sehingga kita bisa gunakan apt-get, yum, dnf, yast dan package manager lainnya untuk menginstall monit.

Selain itu, monit juga tersedia versi "terdockerisasi"-nya meskipun bukan official dari monit, bisa dilihat disini. Dan bagi anda yang menggunakan distribusi yang monit tidak tersedia disana, atau anda yang suka hidup seperti larry, anda bisa compile sendiri  monit dari source codenya.

Catatan ini saya buat dengan environment sistem operasi Ubuntu server 14.04 dan versi monit yang terinstall adalah versi 5.6. Dan berikut adalah catatan yang saya peroleh

Basic info monit
Struktur installasi (pada ubuntu 18.04 struktur foldernya lebih baik dan jelas)
monit
├── conf.d # folder script untuk monitoring service secara terpisah
├── monitrc.d # script monitoring default dari monit
└── templates # contoh script monit
Default log file monit
/var/log/monit.log
File default konfigurasi monit
/etc/monit/monitrc
Beberapa command line monit 
Cek versi monit
monit -V
Cek apakah konfigurasi monit  sudah tepat atau belum
monit -t
Run monit mode foreground untuk debugging script
monit -Ivv
Menampilkan ringkasan monit yang berjalan melalui terminal
monit summary

Beberapa catatan yang saya peroleh waktu ngoprek monit
Apabila perintah monit summary menghasilkan error : monit: error connecting to the monit daemon, maka edit konfigurasi /etc/monit/monitrc , hapus komen pada line berikut :
set httpd port 2812
    allow localhost        # untuk mengijinkan akses via localhost
    allow admin:password   # untuk konfigurasi username dan password web dashboard
Sedangkan apabila kita ingin monit lebih aman, kita bisa mengkonfigurasi monit hanya dapat di akses via localhost (untuk akses dashboard, kita perlu melakukan tunneling ke server terlebih dahulu) dengan membuang komen pada link berikut  :
set httpd port 2812
    use address localhost  # untuk menyetujui akses HANYA via localhost
Saat monit di restart atau dijalankan servicenya, monit akan mengevaluasi langsung service yang definisikan dalam script pada : /etc/monit/conf.d. Apabila di dalam folder tersebut ditemukan service yang tidak berjalan, maka monit akan menjalankankannya setelah service monit aktif. MESKIPUN kita hanya mendifinisikan perintah minimal misalnya hanya cara start dan stop service. Sebagai contoh, saya membuat script untuk check service haproxy dengan nama file haproxy:
check process haproxy with pidfile /var/run/haproxy.pid
    start program = "/usr/sbin/service haproxy start" with timeout 30 seconds
    stop program  = "/usr/sbin/service haproxy stop"

Semoga bermanfaat. :D


Referensi :

No comments:

Post a Comment