一文學會如何部署MySQL復制拓撲管理工具:Orchestrator
今天主要介紹一下如何部署MySQL復制拓撲管理工具--Orchestrator。
一、MySQL復制拓撲管理工具Orchestrator
1. 簡介
Orchestrator是一款開源的MySQL復制拓撲管理工具,采用go語言編寫,支持MySQL主從復制拓撲關系的調整、支持MySQL主庫故障自動切換、手動主從切換等功能。
Orchestrator后臺依賴于MySQL或者SQLite存儲元數據,能夠提供Web界面展示MySQL集群的拓撲關系及實例狀態,通過Web界面可更改MySQL實例的部分配置信息,同時也提供命令行和api接口,以便更加靈活的自動化運維管理。
相比于MHA,Orchestrator更加偏重于復制拓撲關系的管理,能夠實現MySQL任一復制拓撲關系的調整,并在此基礎上,實現MySQL高可用,另外Orchestrator自身可以部署多個節點,通過raft分布式一致性協議,保證自身的高可用。
2. 特征
Orchestrato主要有以下幾個特征:
- 自動監測數據庫復制的結構及其狀態
- 提供了GUI,CLI,API等接口來檢查復制拓撲的狀態以及做一些調整的操作
- 支持自動的master failover,當復制結構的server掛掉以后(不管手動還是自動的),能夠重新形成復制的拓撲結構
- 不依賴于特定的server版本或分支(MySQL, Percona Server, MariaDB or even MaxScale binlog servers)
- 支持多種類型的拓撲結構,不管是單個的主從還是成百上千個server組成的多級復制都不在話下
- 他的GUI不只是做向你report拓撲狀態而已,你可以在Orchestrator web頁面通過拖拽或者刪除節點來改變復制拓撲(CLI和API也能做)
3. 體系結構
以下圖表說明了每個 Orchestrator 功能以及相互之間的通信。
Orchestration 數據庫是 Orchestrator 安裝的中心,其中包含所有 Runbook、配置設置和日志。 系統需要以 Management 服務器作為 Runbook Designer 與 Orchestration 數據庫之間的通信層。 一個或多個 Runbook 服務器直接與此數據庫通信,以檢索要運行的 Runbook 以及存儲關于從 Runbook 中創建的作業的信息。 Web 服務也直接與 Orchestration 數據庫通信,并為 Orchestration 控制臺提供 Web 瀏覽器連接。
二、環境準備
1. IP規劃
2. 設置hostname解析
三、安裝部署Orchestrator
源碼地址:https://github.com/github/orchestrator.git
1. 下載
2. rpm安裝
安裝完成后,目錄在/usr/local/orchestrator
3. 修改my.cnf
MySQL配置文件加一個report_host參數,report_host為只讀參數,必須重啟才可生效
說明:不加report_host ,show slave hosts 不會顯示host,會導致程序報錯的
4. 創建數據庫及用戶
(1) 拓撲庫操作:
- CREATE DATABASE IF NOT EXISTS orchestrator;
- GRANT ALL PRIVILEGES ON `orchestrator`.* TO 'orche'@'%' IDENTIFIED BY 'xxxxx';
(2) 主從庫操作:
如果是主從復制,主從分別操作
5. 修改orchestrator配置文件
- # cd /usr/local/orchestrator/
- # cp orchestrator-sample.conf.json orchestrator.conf.json
- # vim orchestrator.conf.json
- =========================================================
- {
- "Debug": true,
- "EnableSyslog": false,
- "ListenAddress": ":3000", #http開放端口
- "MySQLTopologyUser": "orche", #mysql管理賬號,所有被管理的MySQL集群都需要有該賬號
- "MySQLTopologyPassword": "xx", #mysql管理賬號密碼
- "MySQLTopologyCredentialsConfigFile": "",
- "MySQLTopologySSLPrivateKeyFile": "",
- "MySQLTopologySSLCertFile": "",
- "MySQLTopologySSLCAFile": "",
- "MySQLTopologySSLSkipVerify": true,
- "MySQLTopologyUseMutualTLS": false,
- "MySQLOrchestratorHost": "xx", #后臺mysql數據庫地址,orchestrator依賴MySQL或者SQLite存儲管理數據
- "MySQLOrchestratorPort": 3306, #后臺mysql數據庫端口
- "MySQLOrchestratorDatabase": "orchestrator", #后臺mysql數據庫名
- "MySQLOrchestratorUser": "orche", #后臺mysql數據庫賬號
- "MySQLOrchestratorPassword": "xx", #后臺mysql數據庫密碼
- .................
- ]
- =========================================================
注意:MySQLTopologyUser 這個配置項為被管理的MySQL集群的admin賬號,該賬號需要有super,process,reload,select,replicatiopn slave,replicatiopn client 權限。
6. 啟動orchestrator
7. 發現實例
8. 訪問
Web頁面:http://172.26.151.69:3000
到這里就完成orchestrator的搭建工作了。