网站 模板下载,群辉怎么做网站,适合seo优化的网站制作,wordpress如何页面静态一、MeterSphere高可用部署架构及服务器配置
1.1 服务器信息
序号应用名称操作系统要求配置要求描述1负载均衡器CentOS 7.X /RedHat 7.X2C,4G#xff0c;200GB部署Nginx#xff0c;实现负载路由。 部署NFS服务器。2MeterSphere应用节点1CentOS 7.X /RedHat 7.X8C,16GB,200G…一、MeterSphere高可用部署架构及服务器配置
1.1 服务器信息
序号应用名称操作系统要求配置要求描述1负载均衡器CentOS 7.X /RedHat 7.X2C,4G200GB部署Nginx实现负载路由。 部署NFS服务器。2MeterSphere应用节点1CentOS 7.X /RedHat 7.X8C,16GB,200GB部署MeterSphere应用3MeterSphere应用节点2CentOS 7.X /RedHat 7.X8C,16GB,200GB部署MeterSphere应用4MySQL Master节点CentOS 7.X /RedHat 7.X8C,16GB,200GB部署MySQL Master5MySQL Slave节点CentOS 7.X /RedHat 7.X8C,16GB,200GB部署MySQL Slave
1.2 部署架构图 二、Mysql8数据库主从搭建
2.1 下载安装包
下载地址https://downloads.mysql.com/archives/community/ 2.2 解压安装
下载好之后上传服务器进行解压。
tar xvf mysql-8.0.32-1.el7.x86_64.rpm-bundle.tar顺序安装rpm
rpm -ivh mysql-community-common-8.0.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.32-1.el7.x86_64.rpm注意如果在安装 mysql-community-libs-8.0.32-1.el7.x86_64.rpm 的时候出现下面错误说明已经安装了mariadb相关依赖需要卸载。可以执行yum remove mysql-libs 清除之前的依赖即可。然后重新执行 rpm -ivh mysql-community-libs-8.0.32-1.el7.x86_64.rpm 即可。
初始化my.cnf
特别注意: 先配置my.cnf再启动。 如果已经启动了没办法初始化大小写的问题了这个时候可以删除重新初始化操作如下正常配置可以忽略
如果你不在意数据的话直接删除数据
停止MySQL
systemctl stop mysqld
删除 MySQL的数据(恢复到初始化之前)
rm -rf /var/lib/mysql[mysqld]
datadir/var/lib/mysqldefault-storage-engineINNODB
character_set_serverutf8mb4
lower_case_table_names1 # 不区分大小写
performance_schemaoff
table_open_cache128
transaction_isolationREAD-COMMITTED
max_connections1000
max_connect_errors6000
max_allowed_packet64M
innodb_file_per_table1
innodb_buffer_pool_size512M
innodb_flush_methodO_DIRECT
innodb_lock_wait_timeout1800character-set-client-handshake FALSE
character-set-serverutf8mb4
collation-serverutf8mb4_general_ci
init_connectSET default_collation_for_utf8mb4utf8mb4_general_cisql_modeSTRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTIONskip-name-resolve[mysql]
default-character-setutf8mb4[mysql.server]
default-character-setutf8mb启动
# 启动
systemctl start mysqld
# 停止
systemctl stop mysqld
# 状态
systemctl status mysqld
# 重启
systemctl restart msyqld修改密码
# 查看密码
sudo grep temporary password /var/log/mysqld.log
# 如果上面查不到密码可以执行下面的查看
sudo grep temporary password /var/log/messages
# 登录
mysql -uroot -p 密码
# 修改密码
ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY Password123mysql;
# 修改root作用域
update mysql.user set host % where user root;
# 刷新
flush privileges;
# 重启mysql
systemctl restart mysqld 2.3 主从配置
2.3.1 主库配置
修改 /etc/my.cnf
[mysqld]
datadir/var/lib/mysqldefault-storage-engineINNODB
character_set_serverutf8mb4
lower_case_table_names1 # 不区分大小写
performance_schemaoff
table_open_cache128
transaction_isolationREAD-COMMITTED
max_connections1000
max_connect_errors6000
max_allowed_packet64M
innodb_file_per_table1
innodb_buffer_pool_size512M
innodb_flush_methodO_DIRECT
innodb_lock_wait_timeout1800character-set-client-handshake FALSE
character-set-serverutf8mb4
collation-serverutf8mb4_general_ci
init_connectSET default_collation_for_utf8mb4utf8mb4_general_cisql_modeSTRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTIONskip-name-resolve# 主从复制-主机配置
# 主服务器唯一ID
server-id1
# 启用二进制日志
log-binmysql-bin
# 设置不要复制的数据库(可设置多个)
binlog-ignore-dbsys
binlog-ignore-dbmysql
binlog-ignore-dbinformation_schema
binlog-ignore-dbperformance_schema
# 设置需要复制的数据库(可设置多个)
binlog-do-dbmetersphere
# 为每个session分配的内存在事务过程中用来存储二进制日志的缓存
binlog_cache_size1M
# 主从复制的格式mixed,statement,row默认格式是statement。建议是设置为row主从复制时数据更加能够统一
binlog_formatrow
# 配置二进制日志自动删除/过期时间单位秒默认值为2592000即30天8.0.3版本之前使用expire_logs_days单位天数默认值为0表示不自动
删除。
binlog_expire_logs_seconds2592000[mysql]
default-character-setutf8mb4[mysql.server]
default-character-setutf8mb重启MySQL
# 启动
systemctl start mysqld
# 停止
systemctl stop mysqld
# 状态
systemctl status mysqld
# 重启
systemctl restart msyqld创建主从复制用户
#创建主从复制用户
CREATE USER clusteruser% IDENTIFIED WITH mysql_native_password BY Calong2015;
# 授权
GRANT REPLICATION SLAVE ON *.* TO clusteruser%;
# 刷新
FLUSH PRIVILEGES;2.3.2 从库配置
配置my.cnf
[mysqld]
datadir/var/lib/mysqldefault-storage-engineINNODB
character_set_serverutf8mb4
lower_case_table_names1
performance_schemaoff
table_open_cache128
transaction_isolationREAD-COMMITTED
max_connections1000
max_connect_errors6000
max_allowed_packet64M
innodb_file_per_table1
innodb_buffer_pool_size512M
innodb_flush_methodO_DIRECT
innodb_lock_wait_timeout1800character-set-client-handshake FALSE
character-set-serverutf8mb4
collation-serverutf8mb4_general_ci
init_connectSET default_collation_for_utf8mb4utf8mb4_general_cisql_modeSTRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTIONskip-name-resolve# 主从复制-主机配置
# 从服务器唯一ID
server-id2
# 需要主从复制的数据库 如多个则重复配置
replicate-do-dbmetersphere
# 复制过滤也就是指定哪个数据库不用同步mysql库一般不同步 如多个则重复配置
binlog-ignore-dbmysql
# 为每个session分配的内存在事务过程中用来存储二进制日志的缓存
binlog_cache_size1M
# 主从复制的格式mixed,statement,row默认格式是statement。建议是设置为row主从复制时数据更加能够统一
binlog_formatrow
# relay_log配置中继日志默认采用 主机名-relay-bin 的方式保存日志文件
relay_logreplicas-mysql-relay-bin
# log_replica_updates表示slave是否将复制事件写进自己的二进制日志默认值ON开启8.0.26版本之前使用log_slave_updates
log_replica_updatesON
# 防止改变数据(只读操作除了特殊的线程)
read_onlyON[mysql]
default-character-setutf8mb4[mysql.server]
default-character-setutf8mb执行命令
CHANGE REPLICATION SOURCE TO SOURCE_HOST10.1.12.13,SOURCE_PORT3306,SOURCE_USERclusteruser,SOURCE_PASSWORDCalong2015,SOURCE_LOG_FILEmysql-bin.000003,SOURCE_LOG_POS863;MASTER_HOST/SOURCE_HOST主数据库的主机ip
MASTER_PORT/SOURCE_PORT主数据库的端口不设置则默认是3306
MASTER_USER/SOURCE_USER主数据库被授予同步复制权限的用户名
MASTER_PASSWORD/SOURCE_PASSWORD对应的用户密码
MASTER_LOG_FILE/SOURCE_LOG_FILE在主数据库执行命令show master status 查询到的二进制日志文件名称
MASTER_LOG_POS/SOURCE_LOG_POS在主数据库执行命令show master status 查询到的位置 Position的值开启从节点
# 查看从节点状态
show slave status \G;
# 启动
start slvae;
# 停止
stop slave;
# 重置
reset slave;查看状态 2.4 验证
主库添加一条数据查看从库中是否同步如果有说明成功否则失败。主库执行sql语句
# 主从库执行前查看数量
select count(*) from workspace;# 主库执行
INSERT INTO workspace ( id, name, description, create_time, update_time, create_user ) values ( 1, test, test, unix_timestamp(now())*1000, unix_timestamp(now())*1000, NULL );# 主从库查看
select id,name from workspace where id1;
主库/从库执行前 主库执行后 以上验证成功即为搭建没问题。
三、Nginx 搭建
3.1 下载nginx安装包
下载地址https://nginx.org/en/download.html
3.2 解压Nginx并安装
安装nginx
1. 解压nginx安装包
tar -zxvf nginx-1.24.0.tar.gz2. 创建文件夹
mkdir /usr/local/nginx3. 安装依赖
yum install -y gcc-c pcre pcre-devel zlib zlib-devel openssl openssl-devel4.解压
cd nginx-1.24.0/
./configure --prefix/usr/local/nginx5. 安装
make make install6. 启动
cd /usr/local/nginx/sbin
./nginx 7.检查语法错误
./nginx -t 8.重启
./nginx -s reload 9.停止
./nginx -s stop 10. 验证默认是80端口直接访问ip出现nginx的html页面说明部署成功
修改配置信息
1. 修改配置信息,可以直接覆盖原来的。目录/usr/local/nginx/conf/nginx.conf
#user nobody;
worker_processes 1;#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;#pid logs/nginx.pid;events {worker_connections 1024;
}http {include mime.types;default_type application/octet-stream;#log_format main $remote_addr - $remote_user [$time_local] $request # $status $body_bytes_sent $http_referer # $http_user_agent $http_x_forwarded_for;#access_log logs/access.log main;sendfile on;#tcp_nopush on;#keepalive_timeout 0;keepalive_timeout 65;include /usr/local/nginx/conf/conf.d/*.conf;#gzip on;}2. 创建配置目录
mkdir /usr/local/nginx/conf/conf.d3. 创建default.conf并编辑以下内容
upstream servers.com {ip_hash;server 10.1.12.13:8081 weight1 fail_timeout10s max_fails1; # 主节点1server 10.1.14.202:8081 weight1 fail_timeout10s max_fails1; # 主节点2
}server {listen 80;server_name localhost;location / {proxy_pass http://servers.com;proxy_set_header Host $host:$server_port;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-Proto $scheme;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}效果 四、安装MeterSphere服务
官网地址https://metersphere.io/docs/v2.x/installation/offline_installation/
安装包地址https://community.fit2cloud.com/#/products/metersphere/downloads解压安装, 默认安装/opt 目录
tar -zxvf metersphere-offline-installer-v2.10.2-lts.tar.gz修改配置信息
cd metersphere-offline-installer-v2.10.2-lts
vi install.conf配置好之前搭建好MySQL的主节点信息然后执行脚本安装
bash install.sh查看服务状态
msctl status 另外一个节点同样的操作参考上面安装即可。
五、NFS 搭建
搭建NFS是为了文件共享使两个MeterSphere节点文件同步。
5.1 服务端搭建
1. 在nginx节点安装NFS服务器
yum -y install nfs-utils2. 安装nfsrpc
yum -y install nfs-utils rpcbind3. 验证nfs安装
rpm -qa nfs-utils4. 服务端创建共享文件目录(目录可以自定义)
mkdir -p /data/
chmod 666 /data/因为我们要共享的是/opt/metersphere/data目录所以需要把其文件夹给复制过来。
1. 直接去到部署metersphere的服务器把/opt/meterspere/data 给打包
tar -czvf data.tar.gz /opt/metersphere/data2.然后传到部署nfs服务端/data目录下
最终效果如下[rootms002 data]# pwd
/data
[rootms002 data]# ls
api-folder body jar jmeter kafka minio mysql node prometheus redis
[rootms002 data]#5.修改nfs的配置 /etc/exports/data/ xx.xx.xx.xx(rw,sync,insecure,no_subtree_check,no_root_squash) xx.xx.xx.xx(rw,sync,insecure,no_subtree_check,no_root_squash)# xx.xx.xx.xx 为客户端ip
#
#权限说明
#rw read-write可读写
#sync文件同时写入硬盘和内存
#async文件暂存于内存而不是直接写入内存
#no_root_squashNFS客户端连接服务端时如果使用的是root的话那么对服务端分享的目录来说也拥有root权限。显然开启这项是不安全的。
#root_squashNFS客户端连接服务端时如果使用的是root的话那么对服务端分享的目录来说拥有匿名用户权限通常他将使用nobody或nfsnobody身份
#all_squash不论NFS客户端连接服务端时使用什么用户对服务端分享的目录来说都是拥有匿名用户权限
#anonuid匿名用户的UID值通常是nobody或nfsnobody可以在此处自行设定
#anongid匿名用户的GID值。
#insecure当mount监听端口大于1024时需要使用此参数 6. 重载配置数据
exportfs -rv7. 启动rpc
systemctl start rpcbind8.设置rpc开机启动
systemctl enable rpcbind9.检查RPC
rpcinfo -p localhost10.启动 NFS 服务
systemctl start nfs
systemctl enable nfs
5.2 客户端搭建也就是安装MeterSphere节点的服务器
1. 下载客户端
yum -y install nfs-utils2. 校验服务端共享目录判断网络是否通
showmount -e xx.xx.xx.xx # xx.xx.xx.xx为服务端IP有返回信息说明成功3. 挂载共享目录mount xx.xx.xx.xx:/data /opt/metersphere/data #xx.xx.xx.xx 服务端ip.4. 至此直接在客户端或者服务端创建文件看是否有同步即可。
注意两个部署MeterSphere的节点都需要搭建。
六、验证
访问nginx节点,可以正常显示 因为使用nginx负载均衡所以停掉一个服务再进行访问。 七、注意事项
在安装MySQL的时候有特别注意的地方需要仔细看下。搭建双节点的MeterSphere应用所连接的中间件kafkaredisminio等都需要连接同一个。v1和v2.3以前的版本需要NFSv2.3开始使用MinIO对象存储已经不再需要NFS了但从v2.3以前版本升级上来的因为历史数据的原因还需要NFS。如果需要保证相关中间件的可用性可以自行独立部署。以上就是完整的MeterSphere双活架构的部署流程如有问题欢迎留言。