TcaplusDB本地环境部署

此文档给用户指引如何在多设备环境下部署 TcaplusDB 集群版本,可满足用户的开发测试和线上运营场景。

目前支持以下部署场景:

  1. 单设备的集群 (Oms、Center、Dir、Svr、Proxy同时部署在一台设备上,不提供监控告警和备份回档能力)

  2. 最小化支持容灾的集群(Oms、Center、Dir在一台机器上, Proxy、Svr在另外两台机器上,不提供监控告警和备份回档能力)

  3. 标准运营集群(所有角色不混合部署, 提供监控告警和备份回档能力)

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服务人员定位问题, 问题解决后,重试这个事务即可,不用重新执行这个安装步骤

results matching ""

    No results matching ""