TcaplusDB本地环境部署
此文档给用户指引如何在多设备环境下部署 TcaplusDB 集群版本,可满足用户的开发测试和线上运营场景。
目前支持以下部署场景:
单设备的集群 (Oms、Center、Dir、Svr、Proxy同时部署在一台设备上,不提供监控告警和备份回档能力)
最小化支持容灾的集群(Oms、Center、Dir在一台机器上, Proxy、Svr在另外两台机器上,不提供监控告警和备份回档能力)
标准运营集群(所有角色不混合部署, 提供监控告警和备份回档能力)
1. 准备工作
1.1. 软硬件环境准备
参考 TcaplusDB软硬件配置 。
1.2. 准备MySQL DB数据库
推荐选购云上MySQL DB实例,如腾讯云CDB,具备容灾能力。
如无法使用云上MySQL DB实例时,可找一台机器(可以在Oms机器上)安装和初始化MySQL服务,参考以下步骤:
1.2.1. 安装MySQL
yum install -y mariadb-server
1.2.2. 创建MySQL数据目录, 并给目录授权
mkdir -p /data/tcaplus_mysql
chown -R mysql:mysql /data/tcaplus_mysql
1.2.3. 修改MySQL配置文件
vim /etc/my.cnf
将以下内容填入MySQL配置文件。注意:将XX.XX.XX.XX修改为本机IP。
[mysqld]
datadir=/data/tcaplus_mysql
max_connections=5000
bind-address=XX.XX.XX.XX #### 本机IP ####
skip-name-resolve
innodb_file_per_table=1
max_allowed_packet=500M
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
[mysql]
default-character-set = utf8
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
!includedir /etc/my.cnf.d
1.2.4. 调整MySQL的open file limit参数
mkdir -p /etc/systemd/system/mariadb.service.d/
echo -e "[Service]\nLimitNOFILE=204800" >> /etc/systemd/system/mariadb.service.d/limits.conf
systemctl daemon-reload
echo -e "\n\* soft nofile 204800\n\* hard nofile 204800" >> /etc/security/limits.conf
1.2.5. 设置MySQL最大连接数
sed '/\[Service\]/a LimitNOFILE=204800\nLimitNPROC=204800' /usr/lib/systemd/system/mariadb.service
1.2.6. 启动MySQL服务
systemctl enable mariadb
systemctl restart mariadb
1.2.7. 创建MySQL特权账号。注意:命令中的密码和IP请按要求进行设置。
mysql
grant all on \*.\* to 'root'@'OMS机器IP' identified by '用户密码' WITH GRANT OPTION;
1.2.8. 设置MySQL全局变量
mysql
set global max_connections=5000;
set global sql_mode='';
set global log_bin_trust_function_creators=1;
1.3. 准备安装包
请联系TcaplusDB项目组获取安装包,联系方式参见 TcaplusDB 项目主页。
将获取到的安装包(tcaplus_installer.tar.gz)上传到计划部署TcaplusDB OMS的机器上的任意目录(如/root)下。 注意:用root账号执行安装流程。
解压安装包。
tar xf tcaplus_installer.tar.gz
解压完成后,可以查看到准备安装的服务端版本号信息,见下方,目前服务端控制面的版本是3.62.1,数据面的版本是3.55.0。
ls -1 pkgs/
gmp.rpm
TcaplusOMS3.62.1.212362.x86_64_release_20220905.tar.gz # TcaplusOMS安装包
TcaplusService3.55.0.208057.x86_64_release_20221101.tar.gz # Tcaplus数据模块安装包
TcaplusService3.62.1.212362.x86_64_release_20220905.tar.gz # Tcaplus管理模块安装包
tmonitor_install_2.2.17_192396.tar.gz # Tmonitor后台程序安装包
TSF4WebGame_Deps3.60.1.210831_for_tbuspp_X86_64_Release.tar.gz # Tcaplus机器上架依赖包
web_portal_2.2.17_192396.tar.gz # Tmonitor前端程序安装包
xampp_install.exp # TcaplusOMS web安装包
xampp-linux-x64-5.6.31-0-installer.run # TcaplusOMS web安装包
2. 准备安装配置文件
vim conf/config.json
注意:将基中涉及密码、IP的配置项修改为实际值。
{
"base_env_info": {
"mysql_admin_user": "root", // mysql特权账号,默认root
"mysql_root_passwd": "MySQL特权密码", // mysql特权账号的密码
"mysql_dbname": "tcaplus_CI", // tcaplus使用的mysqldb库名, 脚本会自动创建
"mysql_port": 3306, // mysqldb 服务端口
"skip_mysql_user_create_and_grant": "FALSE", // 不为tcaplus创建mysql普通账号,直接使用root账号(不推荐打开)
"mysql_user": "tcaplus", // tcaplus使用的mysql普通账号
"mysql_passwd": "MySQL用户密码", // tcaplus使用的mysql普通账号之密码
"mysql_node": {
"proc_ip": "MysqlIp" // mysqldb 服务端ip
},
"web_admin_user": "tcaplus_admin", // OMS管理网站之默认账号
"tcaplus_passwd": "OMS用户密码", // OMS默认密码、tcaplus账号密码
"ssh_port": 36000, // 用于安装tcaplus的机器必须打开36000的ssh监听端口,这里目前不支持修改
"pkg_dir": "pkgs", // 安装包所在路径
"tcaplus_control_process_version": "3.62.1.212362.x86_64_release_20220905", // 管理进程版本号
"tcaplus_data_process_version": "3.55.0.208057.x86_64_release_20221101", // 数据进程版本号
"xampp_suite_version": "5.6.31-0", // web套件版本号
"tcaplus_deps_version": "3.60.1.210831", // 依赖包版本号
"tmonitor_version": "2.2.17_192396", // tmonitor版本号
"tcaplus_installation_dir": "/data/tcaplus_upload/", // 目的机器的安装文件所在目录
"ftp_user": "tcaplusftp", // tcm模块使用的ftp账号
"ftp_pass": "FTP账号密码", // tcm模块使用的ftp账号之密码
"single_machine_env": "FALSE" // 是否单机集群 (要求proc_deploy里面涉及的ip只有一个, 且不能安装tmonitor监控服务和gluster备份服务)
},
"regist_info": {
"set_name": "AutoInstall_SET", // 集群信息
"append_set": "FALSE" // 是否为集群新增模式 (在已有的环境里新增集群, 首次安装请保持FALSE)
},
"tmonitor_config": {
"install_tmonitor": "FALSE", // 是否安装TMonitor监控服务
"azure_mysql_mode": "FALSE", // 是否使用微软Azure云提供的mysqldb(建表时有些差异)
"mysql_host": "MysqlIp", // mysql dbip
"mysql_port": 3306, // mysql db port
"mysql_admin_user": "root", // mysql adminuser
"mysql_root_passwd": "MySQL特权密码", // mysql adminpass
"mysql_user": "tmonitor", // mysql user for tmonitor service(保持默认)
"mysql_passwd": "tmonitor", // mysql pass for tmonitor service(保持默认)
"tmonitor_web_user": "tmonitor", // tmonitor web control adminuser(保持默认)
"tmonitor_web_passwd": "tmonitor", // tmonitor web control adminpass(保持默认)
"tmonitor_db_name_base": "tmonitor_center_db", // tmonitor 网站 dbname (保持默认)
"tmonitor_db_name_tcaplus": "db_tmonitor_for_autoinstall", // tmonitor Tcaplus集群 dbname (可改,建议保持默认)
"tmonitor_db_name_tmonitor1": "tmonitor1_db", // tmonitor 自监控dbname1 (保持默认)
"tmonitor_db_name_tmonitor2": "tmonitor2_db", // tmonitor 自监控dbname2 (保持默认)
"tmonitor_app_name_tcaplus": "autoinstall_tcaplus", // Tcaplus集群在Tmonitor注册的业务名,建议和register_info.set_name保持一致
"tmonitor_app_name_tmonitor1": "tmonitor1", // tmonitor自监控业务1(保持默认)
"tmonitor_app_name_tmonitor2": "tmonitor2", // tmonitor自监控业务2(保持默认)
"tmonitor_sasvr1_name": "sasvr1", // tmonitor自监控进程1(保持默认)
"tmonitor_sasvr2_name": "sasvr2", // tmonitor自监控进程1(保持默认)
"tmonitor_nodes": [
{
"proc_ip": "9.134.12.38", // Tmonitor 节点1的内网ip
"proc_ip_external": "9.134.12.38", // Tmonitor 节点1的外网ip,如没有,填内网ip
"proc_root_passwd": "XXXXXXXXX" // Tmonitor 节点1的root密码
},
{
"proc_ip": "9.134.53.76", // 目前脚本不支持部署双节点Tmonitor,这里三行配置保持和上面节点1的一致
"proc_ip_external": "9.134.53.76", // 和上面一致
"proc_root_passwd": "YYYYYYYYY" // 和上面一致
}
]
},
"data_backup_config": {
"install_gluster": "FALSE", // 是否安装gluster集群备份服务
"gluster_volume": "glusterfs_autoinstall_vol", // gluster数据卷的卷名
"gluster_mountpoint": "/data/glusterfs_autoinstall_dbbak", // gluster备份卷的挂载路径(Tcapcenter/Tcapsvr需要挂载这个路径)
"gluster_storage_path": "/data/gluster_brick", // gluster节点机器的数据存储目录(确保数据盘挂载在这个地址)
"gluster_nodes": [
{
"proc_ip": "9.134.12.38", // 由于这个存储集群是Raid1-1的容灾级别,所以gluster几点机器数需要是2的倍数
"proc_root_passwd": "XXXXXXXXX"
},
{
"proc_ip": "9.134.53.76",
"proc_root_passwd": "YYYYYYYYY"
}
]
},
"proc_deploy": {
"?proc_detail": "proc_type: TCAPOMS TCAPCENTER TCAPDIR TCAPSVR TCAPROXY TCAPDB, TCAPOMS和TCAPCENTER只能填一个, TCAPSVR必须是双数",
"proc_detail": [
{
"proc_type": "TCAPOMS", // 必须、切只能存在一个TCAPOMS
"proc_ip": "9.134.53.76",
"proc_root_passwd": "YYYYYYYYY"
},
{
"proc_type": "TCAPCENTER", // 必须、且只能存在一个TCAPCENTER
"proc_ip": "9.134.52.186",
"proc_root_passwd": "XXXXXXXXX"
},
{
"proc_type": "TCAPDIR", // 必须存在至少一个TCAPDIR
"proc_ip": "9.135.15.178",
"proc_root_passwd": "YYYYYYYYY"
},
{
"proc_type": "TCAPSVR", // 用于上架的Tcapsvr节点必须是2的倍数
"proc_ip": "9.135.15.198",
"proc_root_passwd": "YYYYYYYYY"
},
{
"proc_type": "TCAPSVR", // 用于上架的Tcapsvr节点必须是2的倍数
"proc_ip": "9.135.15.39",
"proc_root_passwd": "YYYYYYYYY"
},
{
"proc_type": "TCAPDB",
"proc_ip": "9.135.15.198",
"proc_root_passwd": "YYYYYYYYY"
},
{
"proc_type": "TCAPDB",
"proc_ip": "9.135.15.39",
"proc_root_passwd": "YYYYYYYYY"
},
{
"proc_type": "TCAPROXY",
"proc_ip": "9.135.15.39",
"proc_root_passwd": "YYYYYYYYY"
},
{
"proc_type": "TCAPROXY",
"proc_ip": "9.135.15.198",
"proc_root_passwd": "YYYYYYYYY"
}
]
}
}
3. 开始安装
准备好安装配置文件后,便可以开始执行安装。注意:用root账号执行安装流程。
python main.py
[INFO] Script begins running...
欢迎使用Tcaplus快速安装脚本,请根据提示输入序号执行相应的安装步骤,支持输入单个序号(2)或区间序号(2-8)
(1) 配置合理性校验
(2) 环境登录检查
(3) 环境空闲检查、环境系统检查、初始化
(4) 判断MySQL库是否空闲,MySQL库、角色创建、验证数据库登录情况 (center、dir、oms、tmonitor -> mysql
(5) 导入MySQL表,安装OMS/初始化OMS
(6) 注册Set + 安装Tcapcenter (DEPS / TCM / TCAPCENTER ), 资源设置为共享模式, 安装VsFTPd及配置
(7) 安装Gluster备份集群、打开定时备份和Center相关配置(如果没Gluster集群则仅开本地备份) ++optional++
(8) 上架和安装Tcapdir
(9) 上架Tcapsvr
(10) 上架Tcaproxy
(11) [由用户完成] 注册App(pb/tdr)、注册Zone、添加测试表、分配资源 ++user action++
(12) 上架Tcapdb ++optional++
(13) Tmonitor安装部署: MySQL库空闲检查、建库、创建账号、测试访问成功性、导入MySQL表,安装TmonitorWeb、安装TmonitorA、Tcaplus集群接入告警 ++optional++
(0) 退出
请输入:
根据不同安装场景按顺序执行脚本的各个步骤。步骤1~10是必须执行的, 步骤7、12、13可根据具体情况决定是否执行。
安装过程中,如有错误,除了看屏幕信息外,还可以查看过程日志:tcaplus_installer.log。
4. 常见问题
4.1 执行第5步"导入MySQL表,安装OMS/初始化OMS", 出现错误 "failed to connect X.X.X.X:80"
4.1.1 首先检查80端口是否没在Listening
netstat -tunlp | grep :80
4.1.2 尝试手动启动web服务
/opt/lampp/xampp startapache
4.1.3 如果启动web服务报错, 比较是否当前机器改过hostname, 确保和/etc/hosts里的机器名保持一致,然后再手动启动web服务
hostname
cat /etc/hosts
/opt/lampp/xampp startapache
4.1.4 重试第5步安装, 需要改下脚本,将部分执行函数跳过
vim commonlib/OmsDeployment.py, 将以下这部分代码注释
275 logI("Execute tables import under %s" % decompress_pkg_path)
276 ret = ImportOmsSql(config_items, decompress_pkg_path)
277 if 0 != ret:
278 print("ImportOmsSql failed.")
279 return 7
280
281 logI("Installing Dep pkgs")
282 if 0 != InstallDeps(config_items, 'TCAPOMS', decompress_deps_path):
283 return 8
284
285 logI("Installing Xampp")
286 if 0 != InstallXampp(config_items, dest_path):
287 return 9
288
289 logI("Installing OmsSystem")
290 if 0 != OmsDeployment(config_items, decompress_pkg_path):
291 return 10
4.2 执行第6步"注册Set + 安装Tcapcenter", 中途出现失败
4.2.1 可能是tcapcenter启动失败,请提供tcapcenter.log日志给Tcaplus服务人员定位问题
日志路径: /data/tcaplus/tcaplus_service/log/tcapcenter/tcapcenter.log
4.2.2 问题解决后,重新执行第6步
4.3 执行第8-10步出现失败
请打开OMS管理网站 (网址和默认账号密码见第5步的输出信息--黄色字体) 按顺序点开“运维平台--事务处理”,找到挂起的事务,将屏幕截图(包含下面的事务日志)发给Tcaplus服务人员定位问题, 问题解决后,重试这个事务即可,不用重新执行这个安装步骤