MySQL keepalived安装配置(二)

耀灵1年前技术文章568


一、keepalived安装配置

1.1、主备库安装keepalived服务:

yum install -y keepalived
yum install -y python MySQL-python

1.2、将文件部署在/opt/目录下

[root@hzyg-ip-bd32 scripts]# pwd
/opt/keepalived/scripts
[root@hzyg-ip-bd32 scripts]# ll
total 336
-rwxr-xr-x 1 root root  20620 Dec 10  2019 dtagentconf.py
-rw-r--r-- 1 root root  19282 Mar  8 16:54 dtagentconf.pyc
-rwxr-xr-x 1 root root   8830 Aug 22  2016 dtutil.py
-rw-r--r-- 1 root root  11711 Mar  9 11:24 dtutil.pyc
-rwxr-xr-x 1 root root   8591 Aug 22  2016 keepalived_conf_scanner.py
-rw-r--r-- 1 root root   6235 Mar  9 11:24 keepalived_conf_scanner.pyc
-rwxr-xr-x 1 root root  16931 Dec 10  2019 mysqlha_check_alive.py
-rwxr-xr-x 1 root root   7089 Dec 10  2019 mysqlha_setup_master.py
-rwxr-xr-x 1 root root   1002 Aug 22  2016 mysqlha_setup_slave.py
-rw-r--r-- 1 root root 218018 May 29  2016 MySQL-python-1.2.5.tar.gz
[root@hzyg-ip-bd32 scripts]# cd ../conf
[root@hzyg-ip-bd32 conf]# ll
total 8
-rw-r--r-- 1 root root  53 Dec 10  2019 agent.yaml
-rw-r--r-- 1 root root 849 Mar  9 11:40 keepalived.conf

1.3、授权脚本执行权限:

[root@hzyg-ip-bd32 scripts]# chmod 777 *.py
[root@hzyg-ip-bd32 scripts]# ll
total 336
-rwxr-xr-x 1 root root  20620 Dec 10  2019 dtagentconf.py
-rw-r--r-- 1 root root  19282 Mar  8 16:54 dtagentconf.pyc
-rwxr-xr-x 1 root root   8830 Aug 22  2016 dtutil.py
-rw-r--r-- 1 root root  11711 Mar  9 11:24 dtutil.pyc
-rwxr-xr-x 1 root root   8591 Aug 22  2016 keepalived_conf_scanner.py
-rw-r--r-- 1 root root   6235 Mar  9 11:24 keepalived_conf_scanner.pyc
-rwxr-xr-x 1 root root  16931 Dec 10  2019 mysqlha_check_alive.py
-rwxr-xr-x 1 root root   7089 Dec 10  2019 mysqlha_setup_master.py
-rwxr-xr-x 1 root root   1002 Aug 22  2016 mysqlha_setup_slave.py
-rw-r--r-- 1 root root 218018 May 29  2016 MySQL-python-1.2.5.tar.gz
[root@hzyg-ip-bd32 scripts]#

1.4、编辑配置文件:

注:
3306 替换为真实端口号
状态:主库为 MASTER,从库为 BACKUP

ens32 替换为网络设备号
virtual_ipaddress vip

地址根据实际情况规划 auth_pass 要保持主备库一致

下面标记为红色字体的地方需要特别关注修改

配置文件样例如下

主配置文件:

/opt/keepalived/conf/keepalived.conf

vrrp_script chk_port_3306 {
  script       "/opt/keepalived/scripts/mysqlha_check_alive.py 3306"
  interval 11   # check every 2 seconds
  fall 3       # require 2 failures for KO
  rise 3       # require 2 successes for OK
  timeout 11
}


vrrp_instance mysql_3306 {

  state MASTER
  interface bond0
  garp_master_delay 5
  virtual_router_id 201
  priority 200
  advert_int 1
  unicast_src_ip  10.129.16.32
    unicast_peer {
       10.129.16.33
}

  nopreempt

  authentication {
    auth_type PASS
    auth_pass PASS3306
  }

  virtual_ipaddress {
    10.129.16.44/24 dev bond0
  }

  track_script {
    chk_port_3306
  }

  #debug

  notify_master "/opt/keepalived/scripts/mysqlha_setup_master.py 3306"
  notify_backup "/opt/keepalived/scripts/mysqlha_setup_slave.py 3306"
  notify_fault "/opt/keepalived/scripts/keepalived_conf_scanner.py"

}

从配置文件:

/opt/keepalived/conf/keepalived.conf

vrrp_script chk_port_3306 {
  script       "/opt/keepalived/scripts/mysqlha_check_alive.py 3306"
  interval 11   # check every 2 seconds
  fall 3       # require 2 failures for KO
  rise 3       # require 2 successes for OK
  timeout 11
}


vrrp_instance mysql_3306 {

  state BACKUP
  interface bond0
  garp_master_delay 5
  virtual_router_id 201
  priority 100
  advert_int 1
  unicast_src_ip  10.129.16.33
    unicast_peer {
       10.129.16.32
}

  nopreempt

  authentication {
    auth_type PASS
    auth_pass PASS3306
  }

  virtual_ipaddress {
    10.129.16.44/24 dev bond0
  }

  track_script {
    chk_port_3306
  }

  #debug

  notify_master "/opt/keepalived/scripts/mysqlha_setup_master.py 3306"
  notify_backup "/opt/keepalived/scripts/mysqlha_setup_slave.py 3306"
  notify_fault "/opt/keepalived/scripts/keepalived_conf_scanner.py"

}

1.5、修改默认配置文件指向/opt/keepalived/conf/keepalived.conf:

因为keepalived默认会到 /etc/keepalived/ 读取配置文件,如果想要生效我们需要修改运行脚本,当然也可以直接将配置文件拷贝到指定目录,下面介绍修改启动脚本配置。

  1. ExecStart=/usr/sbin/keepalived $KEEPALIVED_OPTIONS 

修改为:

  1. ExecStart=/usr/sbin/keepalived --use-file=/opt/keepalived/conf/keepalived.conf


1.6、测试环境依赖

启动keepalived前建议最好先测试一下 py 脚本是否有依赖缺失

此时我们发现Python有yaml模块缺失,下面是离线安装方法


tar xf PyYAML-5.4.1.tar.gz
cd PyYAML-5.4.1
python setup.py install

如果提示:

ImportError: No module named setuptools

先安装setuptools再重新安装yaml

yum install python-setuptools

安装完成后测试没问问题后可进入下一步。

1.7、主库启动keepalived

[root@test32 conf]# systemctl start keepalived

2.8、备库启动keepalived

[root@test33 conf]# systemctl start keepalived

2.9、确认监控数据

2.png

如果查不到监控数据,那么说明keepalived部署有问题,需要检查前面的步骤。


相关文章

Scylladb部署

Scylladb部署一、部署在centos 7.9上部署scylla-4.2下面步骤都需要root权限或者sudo权限1、添加scylladb 回购文件和yum源yum install epel-re...

flink算子优化

flink算子优化

这里先看两个任务的逻辑执行图:图一:全部打散的任务执行图图二:使用slot资源共享的任务执行图图一和图二中的两个任务是同一个任务,不同点是图一将所有的算子全部打散,在代码中使用了以下逻辑:,或者就是禁...

trino容器对接hudi(五)

trino容器对接hudi(五)

前提:本文是基于已经部署了trino容器的基础上进行的。冒烟测试是在trino对接ldap后并且ranger已经对接了metastore权限后,并且spark组件已经对接hudi,并且成功创建hudi...

Atlas集成Hive

Atlas集成Hive

1 集成原理2 验证Hive元数据采集效果(1) 查看Atlas里是否有Hive元数据(2) 进入Hive创建一个库表create database if not exists foo;(3) 进入A...

Flink sql 集成hive metastore

Flink sql 集成hive metastore

1、前置条件**确认hive metastore版本(本次版本3.1.2) **hive metastore 部署成功hive依赖jar包分发到每个flink节点:/flink-1.13.6    ...

PG的锁(一)

一、表级锁1.1 表级锁模式常见锁模式以及应用场景:ACCESS SHARE :select操作获取该模式锁资源,通常情况下所有只读取不修改表的查询都会获取该模式锁资源ROW SHARE : sele...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。