- Hotline 24/7: (0251)834-8484
- Kelola Akun atau Buat Akun
Skrip Bash Untuk Memonitor Replikasi MySQL
Wednesday, 29 October 2014Berikut 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