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