orchestrator 是 go编写的MySQL高可用性和复制拓扑管理工具,支持复制拓扑结构的调整,自动故障转移和手动主从切换等功能,并提供命令行访问、HTTP API 和 Web 界面。后端数据库用MySQL或SQLite存储元数据,orch作为独立的组件用于管理MySQL或SQLite数据库复制环境的场景。
自动发现MySQL的复制拓扑,并且在web上展示
可以在web进行拖图来进行复制关系的变更
检测主异常,并可以自动或手动恢复,通过Hooks进行自定义脚本
orch 是用主机名进行管理维护工作。
监控目标 MySQL一主两从复制架构(可新建或现存环境),使用mysql作为orch的元数据库
IP | 主机名称 | 端口 | 组件 |
---|---|---|---|
orch 后端数据库 | |||
192.168.10.181 | db01 | 3306 | orchestrator |
192.168.10.182 | db02 | 3306 | orchestrator |
192.168.10.183 | db03 | 3306 | orchestrator |
监控目标数据库 | |||
192.168.10.181 | db01 | 3308 | MySQL |
192.168.10.182 | db02 | 3308 | MySQL |
192.168.10.183 | db03 | 3308 | MySQL |
wget https://github.com/openark/orchestrator/releases/download/v3.2.6/orchestrator-3.2.6-linux-amd64.tar.gz
GitHub中仅提供linux环境的tarball包
tar -xf orchestrator-3.2.6-linux-amd64.tar.gz -C /ups/app/
expport PATH=/ups/app/orchestrator-3.2.6/bin:$PATH
rpm -i orchestrator-3.2.6.x86_64.rpm
-- 元数据库MySQL和orchestrator在同一台机器,否则需要将127.1替换orchestrator所在机器ip CREATE DATABASE IF NOT EXISTS orchestrator; CREATE USER 'orchestrator'@'127.0.0.1' IDENTIFIED BY 'orch_backend_password'; GRANT ALL PRIVILEGES ON `orchestrator`.* TO 'orchestrator'@'127.0.0.1';
给orchestrator用户授权访问监控目标数据库权限
CREATE USER 'orchestrator'@'orch_hostname' IDENTIFIED BY 'orch_topology_password'; GRANT SUPER, PROCESS, REPLICATION SLAVE, RELOAD ON *.* TO 'orchestrator'@'orch_hostname'; GRANT SELECT ON mysql.slave_master_info TO 'orchestrator'@'orch_hostname'; GRANT SELECT ON ndbinfo.processes TO 'orchestrator'@'orch_hostname'; -- Only for NDB Cluster GRANT SELECT ON meta.* TO 'orchestrator'@'orch_hostname'; --自定义meta库
修改下面配置项
"MySQLOrchestratorHost": "127.0.0.1", "MySQLOrchestratorPort": 3306, "MySQLOrchestratorDatabase": "orchestrator", "MySQLOrchestratorUser": "orchestrator", "MySQLOrchestratorPassword": "orch_backend_password", "MySQLTopologyUser": "orchestrator", "MySQLTopologyPassword": "orch_topology_password",
./orchestrator --debug --config=/etc/orchestrator.conf.json http