Monit adalah solusi bagi webmaster yang menggunakan dedicated server (VPS) untuk mengelola dan menjalankan website dengan kebutuhan khusus (punya banyak traffic, butuh library tambahan, atau yang lainnya) yang jarang disediakan oleh penyedia hosting pada umumnya. Menggunakan Monit dapat membantu dalam melakukan monitoring dan bahkan tindakan (action) terhadap beberapa service, khususnya pada web server. Misalnya untuk memonitor service MySQL jika sewaktu-waktu service-nya stopped, maka Monit dapat secara otomatis melakukan start/restart pada service tersebut, dengan konfigurasi terlebih dahulu tentunya.
EPEL Repository
Secara default Monit tidak tersedia pada paket instalasi CentOS, melainkan terdapat pada repository EPEL. Untuk itu kita perlu menambahkan EPEL repository kedalam paket repository CentOS.
Note: instalasi berikut harus sebagai root
dan menggunakan perintah wget
, secara default wget
tidak tersedia pada paket instalasi CentOS, untuk itu kita perlu melakukan instalasi terhadap aplikasi wget
yum install wget
CentOS 7
## RHEL/CentOS 7 64-Bit ## wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm rpm -ivh epel-release-7-5.noarch.rpm
CentOS 6
## RHEL/CentOS 6 32-Bit ## wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm rpm -ivh epel-release-6-8.noarch.rpm ## RHEL/CentOS 6 64-Bit ## wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -ivh epel-release-6-8.noarch.rpm
CentOS 5
## RHEL/CentOS 5 32-Bit ## wget http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm rpm -ivh epel-release-5-4.noarch.rpm ## RHEL/CentOS 5 64-Bit ## wget http://download.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm rpm -ivh epel-release-5-4.noarch.rpm
CentOS 4
## RHEL/CentOS 4 32-Bit ## wget http://download.fedoraproject.org/pub/epel/4/i386/epel-release-4-10.noarch.rpm rpm -ivh epel-release-4-10.noarch.rpm ## RHEL/CentOS 4 64-Bit ## wget http://download.fedoraproject.org/pub/epel/4/x86_64/epel-release-4-10.noarch.rpm rpm -ivh epel-release-4-10.noarch.rpm
Karena kebetulan server yang saya kelola menggunakan CentOS 6 32bit, maka screenshot yang saya punya ialah sebagai berikut:
Install dan Konfigurasi
Setelah EPEL repository berhasil ditambahkan, barulah kita bisa melakukan instalasi terhadap Monit.
yum install monit
Selanjutnya kita perlu melakukan konfigurasi terhadap monit.conf
Note: Saya pribadi lebih senang menggunakan program nano
sebagai editor, akan tapi lagi-lagi tidak terpasang secara default pada paket aplikasi CentOS, untuk itu kita perlu melakukan instalasi sebelumnya
yum install nano
Konfigurasi monit.conf
nano /etc/monit.conf
Setelah editor untuk monit.conf
terbuka, cari baris berikut:
set httpd port 2812 and use address localhost # only accept connection from localhost allow localhost # allow localhost to connect to the server and allow admin:monit # require user 'admin' with password 'monit'
Selanjutnya ganti dengan perintah berikut:
set httpd port 2812 and #use address localhost # karena kita akan melakukan remote dari host yang berbeda allow 0.0.0.0/0.0.0.0 # agar bisa diakses dari mana saja allow seseorang:sesuatu # ganti dengan username dan password yang diinginkan
Simpan perubahan tersebut dengan ctrl+o
dan tekan Enter
, terakhir ctrl+x
untuk keluar dari editor. Setelah melakukan perubahan terhadap monit.conf
kita perlu melakukan restart terhadap service Monit.
service monit restart
Untuk mengetesnya, silakan mengakses alamat server dengan menggunakan port 2812
, misalnya rinjani-s.lrsoft.org:2812
. Jika muncul prompt username dan password berarti web server monit sudah berjalan normal, terakhir silakan masukan username dan password yang sudah ditentukan pada tahap konfigurasi monit.conf
sebelumnya.
Monitor Service
Terakhir adalah menentukan service mana yang akan dimonitor oleh monit, serta action apa saja yang nantinya akan dilakukan jika terjadi sewaktu-waktu terjadi masalah pada service tersebut.
MySQL service
Untuk menambahkan service MySQL ke monit, kita perlu membuat file didalam direktori /etc/monit.d/
dengan nama apa saja (monit secara otomatis akan membaca semua file yang ada didalam direktori /etc/monit.d/
).
nano /etc/monit.d/mysqlmonitor
Dan tuliskan (copy/paste) perintah berikut:
check process mysqld with pidfile /var/lib/mysql/mysqld.pid group mysql start program = "/etc/init.d/mysqld start" stop program = "/etc/init.d/mysqld stop" if failed host 127.0.0.1 port 3306 then restart
Setelah selesai, ctrl+o
dan Enter
untuk menyimpan file dan ctrl+x
untuk keluar dari editor. Kita perlu melakukan restart pada monit agar service yang baru kita tambahkan dapat terbaca.
service monit restart
Untuk memastikannya apakah service sudah ter-monitor oleh monit, akses kembali server dengan port 2812
(monit).
Untuk menambahkan service lainnya bisa dilihat pada halaman dokumentasi dari Monit.