構建雙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!
推薦閱讀:
- zabbix-agent在麒麟V10上的安裝過程
- MySQL主從配置及haproxy和keepalived搭建過程解析
- 搭建zabbix監控以及郵件報警的超級詳細教學
- Linux上搭載Nginx負載均衡配置使用案例詳解
- zabbix 代理服務器的部署與 zabbix-snmp 監控問題