Beberapa hari terakhir, VPS yang saya tangani mengalami mengalami masalah pada proses MySQL Daemon. Dari catatan log terlihat bahwa proses MySQL Daemon mati karena kehabisan memori baik RAM maupun Swap. Sialnya, setelah ruang memori kembali tersedia tetapi proses MySQL tidak bisa mulai otomatis. Bingung kan? Bagaimana solusinya?
Mbah Google memberikan solusi untuk hal tersebut yaitu software gratis bernama
Monit. Tugasnya adalah memonitor proses, melaporkan via email kepada admin (manusia) dan melakukan penanganan darurat. Monit mengecek proses proses yang dimonitor setiap periode tertentu, misalnya tiap 120 detik alias 2 menit, mengecek apakah prosesnya masih normal atau tidak, termasuk mengecek ketersediaan ruang harddisk, RAM dan Swap.
Instalasinya mudah sekali.
Di Debian 7, perlu ditambahkan "contrib non-free" di source list apt. Berikut adalah contoh /etc/apt/source.list di VPS yang saya kelola:
deb http://ftp.us.debian.org/debian wheezy main contrib non-free
deb http://security.debian.org/ wheezy/updates main
Update dulu apt sebelum install software monit:
root@www:~#apt-get update
root@www:~#apt-get install monit
Sesuaikan konfigurasi monit dengan kebutuhan Anda dengan mengubah file konfigurasi
/etc/monit/monitrc.
root@www:~#nano /etc/monit/monitrc
Di bawah ini adalah contoh untuk memonitor proses MySQL:
check process mysqld with pidfile /var/run/mysqld/mysqld.pid
group mysql
start program = "/etc/init.d/mysql start"
stop program = "/etc/init.d/mysql stop"
if failed host 127.0.0.1 port 3306 then restart
if 5 restarts within 5 cycles then timeout
Simpan dengan menekan CTRL+O kemudian Exit dengan CTRL+X. Restart monit:
root@www:~#service monit restart
Cobalah monit dengan mematikan MySQL sambil mengamati file log /var/log/monit.log. Contoh isi log monit ketika proses MySQL mati dan dinyalakan otomatis oleh monit:
[WIT Nov 15 06:53:28] error : 'mysqld' process is not running
[WIT Nov 15 06:53:28] info : 'mysqld' trying to restart
[WIT Nov 15 06:53:28] info : 'mysqld' start: /etc/init.d/mysql
[WIT Nov 15 06:55:30] info : 'mysqld' process is running with pid 21686
Jika Anda menjumpai file log seperti di atas maka selamat! Monit kini siap membantu Anda memonitor proses.