Skrip Bash Untuk Memonitor Replikasi MySQL

Wednesday, 29 October 2014

Berikut skrip bash sederhana untuk memonitor replikasi MySQL yang sedang berjalan. Dan jika ada masalah dengan sistem replikasi, skrip ini akan mengirim email.

$vi monitoring_replikasi_mysql.sh

#!/bin/bash

# Skrip Monitoring Status Replikasi MySQL.

status=0

SlaveHost="127.0.0.1"

NotifEmail="namaemail@domainemail.com" #untuk mengirim ke beberapa email, pisahkan dengan spasi

SubjekJikaMati="Status Replikasi - Mati Gan"

SubjekJikaHidup="Status Replikasi - Lancar Jaya"

IsiPesanJikaHidup="Status Replikasi MySQL di $SlaveHost lancar jaya.\n--Amin..--\n\n"

#Baca hasil output slave status

OutputSQL=`mysql -u root --password="rahasia" -e "show slave status \G" | grep -i "Slave_SQL_Running"|gawk '{print $2}'`

OutputIO=`mysql -u root --password="rahasia" -e "show slave status \G" | grep -i "Slave_IO_Running"|gawk '{print $2}'`

if [ "$OutputSQL" = "No" ]; then

error="Status Replikasi MySQL di $SlaveHost tidak berjalan.\nSlave_SQL_Running: No\n"

status=1

fi

if [ "$OutputIO" = "No" ]; then

error="Status Replikasi MySQL di $SlaveHost tidak berjalan.\nSlave_IO_Running: No\n"

status=1

fi

# Kirim email jika replikasi tidak berjalan

if [ $status = 1 ]; then

for address in $NotifEmail; do

echo -e $error | mail -s "$SubjekJikaMati" $address

echo "Replikasi MySQL tidak berjalan, laporan terkirim ke alamat email $address"

done

fi

# Kirim email jika replikasi berjalan. Notifikasi ini opsional, disarankan lebih baik di matikan agar kotak surat tidak cepat penuh

if [ $status = 0 ]; then

for address in $NotifEmail; do

echo -e $IsiPesanJikaHidup | mail -s "$SubjekJikaHidup" $address

echo "Replikasi MySQL lancar jaya, laporan terkirim ke alamat email $address"

done

fi

Simpan file skrip tersebut. Selanjutnya pasang di cronjob dan jalankan setiap menit.

$crontab -e 

*/1 * * * * sh /path/ke/monitoring_replikasi_mysql.sh