一、部署架构图
说明:
1.数据库层:两台服务器,配置主从数据库。
2.应用层:两台服务器,主备部署,使用 keepalived + vip ,vip: 10.1.12.1。
二、服务器要求
1.服务器配置
服务器 | 配置 | 开通端口 | IP |
---|---|---|---|
应用节点 1 | CentOS 7.*/RHEL 7.* 以上,8C 16G,安装目录 /opt 空间大于等于100G | 22、80、9200 | 10.1.12.2 |
应用节点 2 | CentOS 7.*/RHEL 7.* 以上,8C 16G,安装目录 /opt 空间大于等于100G | 22、80、9200 | 10.1.12.3 |
数据库 1 | CentOS 7.*/RHEL 7.* 以上,4C 8G,安装目录 /var/lib/mysql 空间大于等于100G | 22、3306 | 10.1.12.4 |
数据库 2 | CentOS 7.*/RHEL 7.* 以上,4C 8G,安装目录 /var/lib/mysql 空间大于等于100G | 22、3306 | 10.1.12.5 |
2.服务器检查
系统时间请用 CST 时间(否则对接阿里云等公有云后,账号校验会失败)。
三、数据库层 —— 主从数据库的安装和配置
1.向两台 DB 服务器上传 rpm 安装包
安装包下载地址:https://dev.mysql.com/downloads/mysql/
只要下面这几个 rpm 包即可:
2.安装及修改数据库密码
a.环境准备: 删除 mysql 已存在的相关文件 rpm -ev mysql-libs-* --nodeps rpm -qa | grep -i mysql find / -name mysql b.创建数据数据存放目录 mkdir -p /var/lib/mysql/data c.创建配置文件 my.cnf (此处为主数据库服务器配置,从数据库服务器配置需要修改 server_id=2) cat <<EOF > /etc/my.cnf [mysql] default-character-set=utf8 [mysqld] port=3306 default_authentication_plugin=mysql_native_password socket =/var/lib/mysql/mysql.sock basedir=/var/lib/mysql datadir=/var/lib/mysql/data plugin_dir=/usr/lib64/mysql/plugin lower_case_table_names=1 character-set-server=utf8 default-storage-engine=InnoDB collation-server=utf8_unicode_ci init_connect='SET NAMES utf8' innodb_buffer_pool_size=512M innodb_flush_log_at_trx_commit=0 innodb_lock_wait_timeout=31536000 innodb_log_buffer_size=8M innodb_log_file_size=16M join_buffer_size=200M key_buffer_size=400M log-error=/var/lib/mysql/mysql.log pid-file=/var/lib/mysql/mysql.pid log_error_verbosity=1 max_allowed_packet=2000M max_connections=1000 max_heap_table_size=6400M myisam_max_sort_file_size=64M myisam_sort_buffer_size=32M read_buffer_size=4M read_rnd_buffer_size=4000M server_id=1 skip-external-locking=on sort_buffer_size=256kb table_open_cache=256 thread_cache_size=16 tmp_table_size=64M wait_timeout=31536000 interactive_timeout=31536000 sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION" group_concat_max_len=10240 [client] port=3306 default-character-set=utf8 socket = /var/lib/mysql/mysql.sock EOF d.安装 rpm 包 rpm -ivh mysql-community-common-8.0.33-1.el7.x86_64.rpm --force --nodeps rpm -ivh mysql-community-libs-8.0.33-1.el7.x86_64.rpm --force --nodeps rpm -ivh mysql-community-client-8.0.33-1.el7.x86_64.rpm --force --nodeps rpm -ivh mysql-community-devel-8.0.33-1.el7.x86_64.rpm --force --nodeps rpm -ivh mysql-community-server-8.0.33-1.el7.x86_64.rpm --force --nodeps e.启动 mysqld 服务 systemctl start mysqld f.查看临时密码 sudo grep 'temporary password' /var/lib/mysql/mysql.log g.登录 mysql -uroot -p h.修改密码及权限 flush privileges; ALTER USER root@localhost IDENTIFIED BY 'Password123@mysql'; use mysql; update user set host = '%' where user = 'root'; flush privileges; i.重启 mysqld 服务 systemctl restart mysqld j.使用修改后的密码登录验证
此处以主数据库服务器安装为例,从数据库服务器安装如上。
3.两台服务器互测
mysql -h ipaddress -P 3306 -uroot -p
4.配置主从同步数据库
a.主数据库 10.1.12.4
show master status;
b.从数据库 10.1.12.5
change master to master_host='10.1.12.4',master_user='root',master_password='fit2cloud',master_log_file='master-bin.000002',master_log_pos=15418; start slave; #开启主从同步 show slave status\G #查看同步状态
注:这里使用的是主从数据库,如果需要安装主主数据库,只需要再反向操作一次即可。
四、应用层 —— 安装 CE Lite
两个应用节点上不要同时安装,否则可能会损坏数据库文件!
1.上传安装包
请自行下载 CloudExplorer Lite 最新版本的离线安装包,并复制到目标机器的 /tmp 目录下,此处以 cloudexplorer-offline-installer-v1.0.1-x86_64.tar.gz 为例。
安装包下载链接: https://community.fit2cloud.com/#/products/cloudexplorer-lite/downloads 。
2.解压安装包
tar xvf cloudexplorer-offline-installer-v1.0.1-x86_64.tar.gz
3.修改配置文件
cd cloudexplorer-offline-installer-v1.0.1-x86_64 vi install.conf #修改数据库连接配置
4.执行安装脚本安装
bash install.sh
此处以应用服务器 10.1.12.2 为主节点,另一台应用服务器 10.1.12.3 为从节点 ,建议修改 mysql配置、redis 配置、elk 配置如下:
五、应用层 —— 安装 keepalived
1.安装 keepalived
yum install -y keepalived
2.keepalived 服务开机自启动
systemctl enable keepalived
3.修改配置文件 keepalived.conf
说明:
1)这里配置的是 主备模式。
2)使用 ifconfig 命令查看应用服务器的网卡文件。
a.主节点 10.1.12.2
cat <<EOF > /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { router_id ce-1 } vrrp_script chk_ce { script "/opt/keepalived/chk_ce.sh" interval 2 weight -5 fall 2 rise 1 } vrrp_instance VI_1 { state MASTER interface eth0 #指定HA监测网络的接口 ifconfig 查看 virtual_router_id 88 #虚拟路由 priority 101 #优先级 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 10.1.12.1 #vip } track_script { chk_ce } } EOF
b.从节点 10.1.12.3
cat <<EOF > /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { router_id ce-2 } vrrp_script chk_ce { script "/opt/keepalived/chk_ce.sh" interval 2 weight -5 fall 2 rise 1 } vrrp_instance VI_1 { state BACKUP interface eth0 #指定HA监测网络的接口 ifconfig 查看 virtual_router_id 88 #虚拟路由 priority 99 #优先级 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 10.1.12.1 #vip } track_script { chk_ce } } EOF
4. keepalived 监控 ce 脚本
a.让keepalived 监控 ce 的状态
两个节点上均执行:
mkdir -p /opt/keepalived/ vi /opt/keepalived/chk_ce.sh #!/bin/bash counter=$(docker ps | grep 'cloudexplorer-core' | grep 'healthy' | wc -l) echo "$counter" if [ "${counter}" = "0" ]; then systemctl stop keepalived fi
b.设置脚本文件的权限并测试
chmod 755 /opt/keepalived/chk_ce.sh bash /opt/keepalived/chk_ce.sh
5.配置 keepalived 日志
a.编辑系统日志配置文件
说明:CentOS 7.* 以上是 rsyslog。
1) 在最后一行加上下面的配置 echo "local4.* /etc/keepalived/logs/keepalived.log" >> /etc/rsyslog.conf 2) 重启系统日志服务 systemctl restart rsyslog
b.编辑 keepalived 服务文件
1)修改最后一行的配置 cat <<EOF > /etc/sysconfig/keepalived KEEPALIVED_OPTIONS="-D -d -S 4" EOF
6.重启 keepalived 服务
systemctl restart keepalived
7.查看 keepalived 日志
tail -f /etc/keepalived/keepalived.log
8.验证 keepalived 服务
a.在主节点 10.1.12.2 使用 ifconfig 命令查看,发现 eth0 网络接口下多了一个 ip(vip 地址: 10.1.12.1)。
b.关闭主节点 10.1.12.2 的 keepalived 服务,使用 ifconfig 命令查看发现 vip 不在 eth0 下面了;在从节点 10.1.12.3 使用 ifconfig 命令查看,发现 eth0 网络接口下多了一个 ip(vip 地址: 10.1.12.1)。
c.重启主节点 10.1.12.2 的 keepalived 服务,使用 ifconfig 查看发现 vip 地址又回到了主节点 10.1.12.2 的 eth0 下面。
d. keepalived 配置成功。
六、服务访问
可以通过 vip 地址访问 ce 服务:http://10.1.12.1,也可以单独访问主节点 http://10.1.12.2 或从节点 http://10.1.12.3。