Jumat, 15 November 2013

Monitoring Proses MySQL

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.

Tidak ada komentar:

Posting Komentar