先来看看架构,如下图:
部署
1.修改hosts
在所有的服务器中执行相同的操作。
vim /etc/hosts
192.168.137.10 master192.168.137.20 backup192.168.137.30 slave192.168.137.40 monitor |
2.添加mysql用户
只需要在所有的数据库端执行即可,监控端不需要。
GRANT REPLICATION CLIENT ON *.* TO 'mmm_monitor'@'192.168.137.%' IDENTIFIED BY 'mmm_monitor'; GRANT SUPER,REPLICATION CLIENT, PROCESS ON *.* TO 'mmm_agent'@'192.168.137.%' IDENTIFIED BY 'mmm_agent';flush privileges; |
注意:repl用户在搭建主从服务的时候已经创建好了。
3.安装监控软件
注意:监控端全部安装,但是监控端只需要用到mysql-mmm-monitor,mysql-mmm-agent不需要启动。
数据库端只需要安装mysql-mmm-agent
1.在监控服务器执行
wget http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpmrpm –ivh epel-release-6-8.noarch.rpmyum –y install mysql-mmm* |
2.在数据库服务器上执行,每个数据库服务器上都要执行
wget http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpmrpm –ivh epel-release-6-8.noarch.rpmyum -y install mysql-mmm-agent |
路径说明:
4.配置文件
db服务器配置文件:mmm_agent.conf,mmm_common.conf
监控服务器的配置文件:mmm_mon.conf,mmm_common.conf
(该文件所有服务器一样)
配置db服务器
1.修改master服务器
vim /etc/mysql-mmm/mmm_common.conf |
active_master_role writer ###积极的master角色的标示,所有的db服务器都需要开启read_only参数,对于writer服务器监控代理会自动将read_only属性关闭。<host default> cluster_interface eth0 #####群集的网络接口 pid_path /var/run/mysql-mmm/mmm_agentd.pid ####pid路径 bin_path /usr/libexec/mysql-mmm/ #####可执行文件路径 replication_user repl #######复制用户 replication_password repl #######复制用户密码 agent_user mmm_agent #######代理用户,用于更改只读操作 agent_password mmm_agent #######代理用户密码</host><host master> ##########master1的host名 ip 192.168.137.10 #####master1的ip mode master ########角色属性,master代表是主 peer backup ########与master1对等的服务器的host名,也就是master2的服务器host名</host><host backup> ####和master的概念一样 ip 192.168.137.20 mode master peer master</host><host slave> #####从库的host名,如果存在多个从库可以重复一样的配置 ip 192.168.137.30 ####从的ip mode slave #####slave的角色属性代表当前host是从</host><role writer> ####writer角色配置 hosts master,backup ####能进行写操作的服务器的host名,如果不想切换写操作这里可以只配置master,这样也可以避免因为网络延时而进行write的切换,但是一旦master出现故障那么当前的MMM就没有writer了只有对外的read操作。 ips 192.168.137.100 #####对外提供的写操作的虚拟IP mode exclusive #####exclusive代表只允许存在一个主,也就是只能提供一个写的IP</role><role reader> #####read角色配置 hosts backup,slave ######对外提供读操作的服务器的host名,当然这里也可以把master加进来 ips 192.168.137.120,192.168.137.130,192.168.137.140 ###对外提供读操作的虚拟ip,这两个ip和host不是一一对应的,并且ips也hosts的数目也可以不相同,如果这样配置的话其中一个hosts会分配两个ip mode balanced ###balanced代表负载均衡</role> |