大部分企業(yè)都會(huì)存在測(cè)試數(shù)據(jù)庫(kù)。然而,這些公司的運(yùn)維人員普遍的做法是編寫一個(gè)shell腳本通過mysqldump,這個(gè)mysql數(shù)據(jù)庫(kù)備份工具結(jié)合linux的crontab這個(gè)定時(shí)任務(wù)命令,實(shí)現(xiàn)每周或者每月對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份,如果不監(jiān)控這些測(cè)試數(shù)據(jù)庫(kù)每周是否備份成功,很可能會(huì)在后期的工作中出現(xiàn)問題。因此,今天圍繞這個(gè)話題,介紹一下如何通過zabbix監(jiān)控mysqldump數(shù)據(jù)庫(kù)的備份。
創(chuàng)新互聯(lián)公司主營(yíng)荷塘網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,手機(jī)APP定制開發(fā),荷塘h5小程序開發(fā)搭建,荷塘網(wǎng)站營(yíng)銷推廣歡迎荷塘等地區(qū)企業(yè)咨詢
* 1. 在mysql數(shù)據(jù)庫(kù)創(chuàng)建一個(gè)演示用的,名為test的數(shù)據(jù)庫(kù),在test數(shù)據(jù)庫(kù)創(chuàng)建一個(gè)test表。
Mysql的語(yǔ)句
Create database test; #創(chuàng)建名為test的數(shù)據(jù)庫(kù)
Use test; #使用test數(shù)據(jù)庫(kù)
create table test (name varchar(50)); #創(chuàng)建一個(gè)只有name字段的test表格
1.1 創(chuàng)建測(cè)試數(shù)據(jù)庫(kù)test
1.2編寫數(shù)據(jù)庫(kù)備份腳本
然后是編寫一個(gè)簡(jiǎn)單備份數(shù)據(jù)庫(kù)的shell腳本(bak.sh),在crontab定時(shí)任務(wù)中,設(shè)置腳本執(zhí)行的時(shí)間
正常來說(備份的數(shù)據(jù)庫(kù)文件名,必須時(shí)數(shù)據(jù)庫(kù)名加上數(shù)據(jù)庫(kù)備份時(shí)間命名)
Mysqldump –u用戶名 –p密碼 –h數(shù)據(jù)庫(kù)ip 數(shù)據(jù)庫(kù)名(test) > 備份的數(shù)據(jù)庫(kù)存放的位置
如果數(shù)據(jù)庫(kù)備份成功,在/tmp/bak_result.txt就會(huì)是一個(gè)0。反之,非0就是數(shù)據(jù)庫(kù)備份失敗。
注意:存放數(shù)據(jù)庫(kù)備份的位置最好不要是用戶目錄,否則其他用戶可能無法查看,因此選擇/tmp目錄用來測(cè)試
最后要給bak.sh加上執(zhí)行權(quán)限,否則定時(shí)任務(wù)無法執(zhí)行
Chmod o+x bak.sh
1.3 設(shè)置定時(shí)計(jì)劃,為了方便演示效果(備份時(shí)間設(shè)置為1分鐘備份一次)
Crontab –e打開定時(shí)任務(wù)
查看是否備份成功
* 2.創(chuàng)建監(jiān)控項(xiàng)
在zabbix_agent.conf配置自定義鍵值
重啟zabbix_agent
在zabbix_server配置監(jiān)控項(xiàng)
如上圖所示,mysql備份的值為0,也就是備份成功。
創(chuàng)建告警。如果值非0,那么就是數(shù)據(jù)庫(kù)備份失敗
為了驗(yàn)證備份失敗。我們可以執(zhí)行刪除數(shù)據(jù)庫(kù)test的操作。那么mysql是否備份成功這個(gè)監(jiān)控項(xiàng)的值就會(huì)不為0,接著會(huì)出現(xiàn)告警。
刪除數(shù)據(jù)庫(kù)命令(drop database 數(shù)據(jù)庫(kù)名)
此時(shí),mysql是否備份成功的監(jiān)控項(xiàng)值不為0。導(dǎo)出的數(shù)據(jù)庫(kù)文件也是無效的。
觸發(fā)器也出現(xiàn)告警
實(shí)驗(yàn)完畢