mysql完成自動(dòng)監(jiān)控同步的腳本
發(fā)表時(shí)間:2023-07-18 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]MySQL越來(lái)越被更多企業(yè)接受,隨著企業(yè)發(fā)展,MySQL存儲(chǔ)數(shù)據(jù)日益膨脹,MySQL的性能分析、監(jiān)控預(yù)警、容量擴(kuò)展議題越來(lái)越多。“工欲善其 事,必先利其器”,那么我們?nèi)绾卧谶M(jìn)行MySQL性能分析、監(jiān)...
MySQL越來(lái)越被更多企業(yè)接受,隨著企業(yè)發(fā)展,MySQL存儲(chǔ)數(shù)據(jù)日益膨脹,MySQL的性能分析、監(jiān)控預(yù)警、容量擴(kuò)展議題越來(lái)越多。“工欲善其 事,必先利其器”,那么我們?nèi)绾卧谶M(jìn)行MySQL性能分析、監(jiān)控預(yù)警、容量擴(kuò)展問(wèn)題上得到更好的解決方案,就要利用各種工具來(lái)對(duì)MySQL各種指標(biāo)進(jìn)行分析。本篇內(nèi)容我們就講解自動(dòng)監(jiān)控從MySQL同步的腳本。
腳本設(shè)計(jì)思路:
1、此腳本應(yīng)該能適應(yīng)各種各樣不同的內(nèi)外網(wǎng)環(huán)境,即IP不同的環(huán)境;
2、讓腳本也順便監(jiān)控下MySQL是否正常運(yùn)行;
3、Slave機(jī)器的IO和SQL狀態(tài)都必須為YES,缺一不可,這里用到了多重條件判斷-a。
#!/bin/bash
#check MySQL_Slave Status
#crontab time 00:10
Mail-list=
MysqlUser=
MysqlPass=
MYSQLPORT=`netstat -na grep "LISTEN" grep "3306" awk -F[:" "]+ '{print $5}'`
MYSQLIP=`ifconfig eth0 grep "inet addr" awk -F[:" "]+ '{print $4}'`
STATUS=$(/usr/local/mysql/bin/mysql -u $MysqlUser -$MysqlPass -e "show slave status\G" grep -i "running")
IO_env=`echo $STATUS grep IO awk ' {print $2}'`
SQL_env=`echo $STATUS grep SQL awk '{print $2}'`
if [ "$MYSQLPORT" == "3306" ]
then
echo "mysql is running"
else
/bin/mail -s "warning!server: $MYSQLIP mysql is down" $Mail-list
fi
if [ "$IO_env" = "Yes" -a "$SQL_env" = "Yes" ]
then
echo "Slave is running!"
else
echo "####### $date #########" >> /tmp/check_mysql_slave.log
echo "Slave is not running!" >> /tmp/check_mysql_slave.log
echo "Slave is not running!"
#mail -s "warn! $MySQLIP_replicate_error" $Mail-list << /tmp/check_mysql_slave.log
echo "`cat /tmp/check_mysql_slave.log`" mail -s "Warning...slave is not running!!" $Mail-list
fi
使用方式:
用crontab設(shè)置定期運(yùn)行,建議每十分鐘運(yùn)行一次
*/10 * * * * /root/mysql-slave-status.sh
記得在每臺(tái)MySQL從機(jī)上分配一個(gè)jiankong的用戶,權(quán)限大些也沒(méi)關(guān)系,只限定在本地運(yùn)行,如下所示:
grant all privileges on *.* to "jiankong"@"127.0.0.1" identified by "jiankong1*0*1";
grant all privileges on *.* to "jiankong"@"localhost" identified by "jiankong1*0*1";
以上內(nèi)容就是自動(dòng)監(jiān)控從MySQL同步的腳本,希望大家能有所領(lǐng)會(huì)。
相關(guān)推薦:
Python自動(dòng)監(jiān)控網(wǎng)站并發(fā)送郵件告警
Linux服務(wù)器監(jiān)控的實(shí)例詳解
監(jiān)控MySQL的同時(shí)收集表信息代碼詳解(圖文)
以上就是mysql實(shí)現(xiàn)自動(dòng)監(jiān)控同步的腳本的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
學(xué)習(xí)教程快速掌握從入門到精通的SQL知識(shí)。