構(gòu)建雙vip的高可用MySQL集群
一、 項目描述:
??? 本項目的目的是:
構(gòu)建一個高可用的能實現(xiàn)讀寫分離的高效的MySQL集群
確保業(yè)務(wù)的穩(wěn)定,能溝通方便的監(jiān)控整個集群
同時能批量的去部署和管理整個集群。
二、項目環(huán)境:
8臺服務(wù)器(2G,2核),centos7.8
mysql5.7.30 mysqlrouter8.0.21
keepalived2.0.10 zabbix ansible
二、項目步驟:
? 1.安裝好centos7.8的系統(tǒng),部署好ansible,在所有的機器之間配置SSH免密通道
2.部署好zabbix監(jiān)控系統(tǒng)
3.通過ansible去以二進制方式安裝部署MySQL
主要是通過編寫好的腳本一鍵安裝二進制版本的MySQL
4.使用ansible安裝mysqlrouter 和keepalived,在另外2臺中間件服務(wù)器上
實現(xiàn)讀寫分離和高可用,在keepalived上配置2個實例,實現(xiàn)2個vip,互為master和backup.
更加好的提升高可用的性能。
5.在3臺MySQL服務(wù)器上配置好主從復(fù)制,建立讀寫分離使用的用戶
形成一個master+2個slave節(jié)點(半同步+GTID)的集群,提供數(shù)據(jù)庫服務(wù)
部署一臺延遲備份的服務(wù)器(延遲30分鐘)
6.嘗試部署mysql的failover插件(自己編寫腳本或者使用MHA)
實現(xiàn)自動的故障切換,確保master宕機
作用:能自動提升另外一臺slave為主,另外一臺slave切換到新的mater上獲得二進制日志。
7.驗證測試讀寫分離和高可用以及主從的failover
8.使用壓力測試軟件(sysbench)測試整個MySQL集群的性能(cpu、IO、內(nèi)存等)
三、項目概念圖:
四、部署zabbix監(jiān)控系統(tǒng)
4.1 準(zhǔn)備:
部署一臺Zabbix監(jiān)控服務(wù)器,一臺被監(jiān)控主機,為進一步執(zhí)行具體的監(jiān)控任務(wù)做準(zhǔn)備:
安裝LNMP環(huán)境
源碼安裝Zabbix
安裝監(jiān)控端主機,修改基本配置
初始化Zabbix監(jiān)控Web頁面
修改PHP配置文件,滿足Zabbix需求
安裝被監(jiān)控端主機,修改基本配置
使用1臺RHEL7虛擬機,安裝部署LNMP環(huán)境、Zabbix及相關(guān)的依賴包,配置數(shù)據(jù)庫并對Zabbix監(jiān)控平臺進行初始化操作。使用2臺被監(jiān)控端,源碼安裝Zabbix Agent。完成Zabbix實驗需要我們搭建一個實驗環(huán)境,拓?fù)浣Y(jié)構(gòu)如表-1所示。
表-1 實驗拓?fù)浣Y(jié)構(gòu)
4.2 步驟:
步驟一:部署監(jiān)控服務(wù)器
1)安裝LNMP環(huán)境
Zabbix監(jiān)控管理控制臺需要通過Web頁面展示出來
并且還需要使用MySQL來存儲數(shù)據(jù)
因此需要先為Zabbix準(zhǔn)備基礎(chǔ)LNMP環(huán)境。
2)修改Nginx配置文件
配置Nginx支持PHP動態(tài)網(wǎng)站,因為有大量PHP腳本需要執(zhí)行
因此還需要開啟Nginx的各種fastcgi緩存,加速PHP腳本的執(zhí)行速度。
3)啟動服務(wù)
啟動Nginx、PHP-FPM、MariaDB服務(wù),關(guān)閉SELinux與防火墻。
4)客戶端測試LNMP環(huán)境
服務(wù)器創(chuàng)建PHP測試頁面,瀏覽器訪問頁面測試網(wǎng)頁連通性。
步驟二:部署監(jiān)控服務(wù)器Zabbix Server 1)源碼安裝Zabbix Serve
多數(shù)源碼包都是需要依賴包的,zabbix也一樣,源碼編譯前需要先安裝相關(guān)依賴包。
2)初始化Zabbix
創(chuàng)建數(shù)據(jù)庫,上線Zabbix的Web頁面
提示:如果是因為配置文件不對,導(dǎo)致服務(wù)無法啟動時,不要重復(fù)執(zhí)行zabbix_server,
一定要先使用killall zabbix_server關(guān)閉服務(wù)后,再重新啟動一次。
修改Zabbix_agent配置文件,啟動Zabbix_agent服務(wù)
提示:如果是因為配置文件不對,導(dǎo)致服務(wù)無法啟動時,不要重復(fù)執(zhí)行zabbix_agentd,
一定要先使用killall zabbix_agentd關(guān)閉服務(wù)后,再重新啟動一次。
瀏覽器訪問Zabbix_server服務(wù)器的Web頁面
修改完P(guān)HP配置文件后,再次使用瀏覽器訪問服務(wù)器
則會提示如圖的提示信息。
注意:這里有一個PHP LDAP是warning狀態(tài)是沒有問題的!
在初始化數(shù)據(jù)庫頁面,填寫數(shù)據(jù)庫相關(guān)參數(shù),如圖所示。
在登陸頁面,使用用戶(admin)和密碼(zabbix)登陸
登陸后設(shè)置語言環(huán)境為中文,如圖所示。
步驟三:部署被監(jiān)控主機Zabbix Agent 1)源碼安裝Zabbix agent軟件
在2.100和2.200做相同操作(以zabbixclient_web1為例)。
2)修改agent配置文件,啟動Agent
3)拷貝啟動腳本(非必須操作,可選做)
?有啟動腳本可以方便管理服務(wù),啟動與關(guān)閉服務(wù)
啟動腳本位于zabbix源碼目錄下
五、項目心得:
?1.一定要規(guī)劃好整個集群的架構(gòu),配置要細心,腳本要提前準(zhǔn)備好,邊做邊修改
?2.防火墻和selinux的問題需要多注意
?3.對MySQL的集群和高可用有了深入的理解
?4.對自動化批量部署和監(jiān)控有了更加多的應(yīng)用和理解
?5.keepalived的配置需要更加細心和IP地址的規(guī)劃有了新的認(rèn)識
?6.對雙vip的使用,添加2條負(fù)載均衡記錄實現(xiàn)dns輪詢,達到向2個vip負(fù)載均衡器上分流
到此這篇關(guān)于構(gòu)建雙vip的高可用MySQL集群的文章就介紹到這了,更多相關(guān)高可用MySQL集群內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mysql 5.6 從陌生到熟練之_數(shù)據(jù)庫備份恢復(fù)的實現(xiàn)方法
下面小編就為大家?guī)硪黄猰ysql 5.6 從陌生到熟練之_數(shù)據(jù)庫備份恢復(fù)的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10