構建雙vip的高可用MySQL集群

一、 項目描述:

    本項目的目的是:
構建一個高可用的能實現讀寫分離的高效的MySQL集群
確保業務的穩定,能溝通方便的監控整個集群
同時能批量的去部署和管理整個集群。

二、項目環境:

8臺服務器(2G,2核),centos7.8
mysql5.7.30 mysqlrouter8.0.21
keepalived2.0.10 zabbix ansible

二、項目步驟:

  1.安裝好centos7.8的系統,部署好ansible,在所有的機器之間配置SSH免密通道
2.部署好zabbix監控系統
3.通過ansible去以二進制方式安裝部署MySQL
主要是通過編寫好的腳本一鍵安裝二進制版本的MySQL
4.使用ansible安裝mysqlrouter 和keepalived,在另外2臺中間件服務器上
實現讀寫分離和高可用,在keepalived上配置2個實例,實現2個vip,互為master和backup.
更加好的提升高可用的性能。
5.在3臺MySQL服務器上配置好主從復制,建立讀寫分離使用的用戶
形成一個master+2個slave節點(半同步+GTID)的集群,提供數據庫服務
部署一臺延遲備份的服務器(延遲30分鐘)
6.嘗試部署mysql的failover插件(自己編寫腳本或者使用MHA)
實現自動的故障切換,確保master宕機
作用:能自動提升另外一臺slave為主,另外一臺slave切換到新的mater上獲得二進制日志。
7.驗證測試讀寫分離和高可用以及主從的failover
8.使用壓力測試軟件(sysbench)測試整個MySQL集群的性能(cpu、IO、內存等)

三、項目概念圖:

在這裡插入圖片描述

四、部署zabbix監控系統

在這裡插入圖片描述

4.1 準備:

部署一臺Zabbix監控服務器,一臺被監控主機,為進一步執行具體的監控任務做準備:

安裝LNMP環境

源碼安裝Zabbix

安裝監控端主機,修改基本配置

初始化Zabbix監控Web頁面

修改PHP配置文件,滿足Zabbix需求

安裝被監控端主機,修改基本配置

使用1臺RHEL7虛擬機,安裝部署LNMP環境、Zabbix及相關的依賴包,配置數據庫並對Zabbix監控平臺進行初始化操作。使用2臺被監控端,源碼安裝Zabbix Agent。完成Zabbix實驗需要我們搭建一個實驗環境,拓撲結構如表-1所示。

表-1 實驗拓撲結構

在這裡插入圖片描述

4.2 步驟:

步驟一:部署監控服務器

1)安裝LNMP環境

Zabbix監控管理控制臺需要通過Web頁面展示出來
並且還需要使用MySQL來存儲數據
因此需要先為Zabbix準備基礎LNMP環境。

在這裡插入圖片描述

2)修改Nginx配置文件

配置Nginx支持PHP動態網站,因為有大量PHP腳本需要執行
因此還需要開啟Nginx的各種fastcgi緩存,加速PHP腳本的執行速度。

在這裡插入圖片描述

3)啟動服務

啟動Nginx、PHP-FPM、MariaDB服務,關閉SELinux與防火墻。

在這裡插入圖片描述

4)客戶端測試LNMP環境

服務器創建PHP測試頁面,瀏覽器訪問頁面測試網頁連通性。

在這裡插入圖片描述

步驟二:部署監控服務器Zabbix Server 1)源碼安裝Zabbix Serve

多數源碼包都是需要依賴包的,zabbix也一樣,源碼編譯前需要先安裝相關依賴包。

在這裡插入圖片描述

2)初始化Zabbix

創建數據庫,上線Zabbix的Web頁面

在這裡插入圖片描述

在這裡插入圖片描述

提示:如果是因為配置文件不對,導致服務無法啟動時,不要重復執行zabbix_server,
一定要先使用killall zabbix_server關閉服務後,再重新啟動一次。
修改Zabbix_agent配置文件,啟動Zabbix_agent服務

在這裡插入圖片描述

提示:如果是因為配置文件不對,導致服務無法啟動時,不要重復執行zabbix_agentd,

一定要先使用killall zabbix_agentd關閉服務後,再重新啟動一次。
瀏覽器訪問Zabbix_server服務器的Web頁面

在這裡插入圖片描述

修改完PHP配置文件後,再次使用瀏覽器訪問服務器
則會提示如圖的提示信息。

在這裡插入圖片描述

在這裡插入圖片描述

註意:這裡有一個PHP LDAP是warning狀態是沒有問題的!
在初始化數據庫頁面,填寫數據庫相關參數
,如圖所示。

在這裡插入圖片描述

在登陸頁面,使用用戶(admin)和密碼(zabbix)登陸
登陸後設置語言環境為中文,如圖所示。

在這裡插入圖片描述

在這裡插入圖片描述

步驟三:部署被監控主機Zabbix Agent 1)源碼安裝Zabbix agent軟件

在2.100和2.200做相同操作(以zabbixclient_web1為例)。

在這裡插入圖片描述

2)修改agent配置文件,啟動Agent

在這裡插入圖片描述

3)拷貝啟動腳本(非必須操作,可選做)

 有啟動腳本可以方便管理服務,啟動與關閉服務

啟動腳本位於zabbix源碼目錄下

在這裡插入圖片描述

五、項目心得:

 1.一定要規劃好整個集群的架構,配置要細心,腳本要提前準備好,邊做邊修改

 2.防火墻和selinux的問題需要多註意

 3.對MySQL的集群和高可用有瞭深入的理解

 4.對自動化批量部署和監控有瞭更加多的應用和理解

 5.keepalived的配置需要更加細心和IP地址的規劃有瞭新的認識

 6.對雙vip的使用,添加2條負載均衡記錄實現dns輪詢,達到向2個vip負載均衡器上分流

到此這篇關於構建雙vip的高可用MySQL集群的文章就介紹到這瞭,更多相關高可用MySQL集群內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: