• 安装说明
    • 1.安装各种工具
    • 2.安装mysql5.7
    • 3.安装pm2
    • 4.安装TARS
      • 4.1 下载TarsFramework源码
      • 4.2 检查MYSQL路径
      • 4.3 编译安装TARS
  • 5.数据库环境初始化
    • 5.1修改mysql初始密码为root@appinside
    • 5.2 添加用户
    • 5.3 创建数据库
  • 6.安装框架基础服务
    • 6.1 准备核心基础服务包
    • 6.2 准备普通基础服务安装包
    • 6.3 安装核心基础服务
    • 6.4.安装web管理平台
    • 6.5 安装普通基础服务
  • 附录
  • 快速安装

    安装说明

    • 本文说明了如何在单机服务器部署TARS环境,如需安装TARS-PHP请参考搭建php环境,如需进行服务开发请参考快速起步。
    • 本文使用操作系统版本: centOs7.2
    • 本文使用的数据库版本: mysql5.7
    • 本文的的操作命令运行需要root权限,需要确保服务器联网。

    1.安装各种工具

    C++语言框架依赖

    1. yum update -y
    2. sudo yum install -y glibc-devel cmake ncurses-devel zlib-devel perl flex bison net-tools vim git yum-config-manager yum-utils gcc gcc-c++

    2.安装mysql5.7

    框架运行依赖,如果下载较慢,可以尝试将centOs默认yum源修改为国内yum的镜像。

    1. yum install https://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm -y
    2. yum-config-manager --disable mysql56-community
    3. yum-config-manager --enable mysql57-community-dmr
    4. yum install mysql mysql-devel mysql-server mysql-utilities -y

    3.安装pm2

    Web管理系统依赖

    1. wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
    2. source ~/.bashrc
    3. nvm install v8.11.3
    4. npm install -g pm2

    4.安装TARS

    4.1 下载TarsFramework源码
    1. git clone https://github.com/TarsCloud/TarsFramework.git
    4.2 检查MYSQL路径

    查看源码目录下的CMakeLists.txt文件,确保MYSQL的相关路径配置与本机一致。

    比如,在centos7.2使用yum安装mysql,mysql的lib文件默认放在/usr/lib64/mysql,include文件夹默认在/usr/include/mysql/,可将CMakeLists.txt文件中的MYSQL_DIR_LIB改为”/usr/lib64/mysql”;也可使用cp -r /usr/include/mysql/* /usr/local/mysql/include将文件copy到指定路径/usr/local/mysql/include,如下:

    1. set(MYSQL_DIR_INC "/usr/local/mysql/include")
    2. set(MYSQL_DIR_LIB "/usr/lib64/mysql")
    4.3 编译安装TARS
    1. cd {$source_folder}/build
    2. chmod u+x build.sh
    3. ./build.sh prepare
    4. ./build.sh all

    如需重新编译请使用

    1. ./build.sh cleanall
    2. ./build.sh all

    5.数据库环境初始化

    5.1修改mysql初始密码为root@appinside

    不同版本的mysql初始密码的修改方式略有不同,可根据实际情况自行修改,以下为centOs7.2的mysql5.7初始密码修改方式。

    1. service mysqld start
    2. cat /var/log/mysqld.log | grep password // 复制mysql初始密码7zi;e3lNXV,
    3. mysql -uroot -p
    4. Enter password: // 输入初始密码,进入mysql
    5. mysql>update user set authentication_string = password("root@appinside") where user="root";
    6. mysql>\q
    7. service mysqld restart
    5.2 添加用户

    ${your machine ip}需要修改成自身机器内网ip,可以通过ifconfig查看。

    1. grant all on *.* to 'tars'@'%' identified by 'tars2015' with grant option;
    2. grant all on *.* to 'tars'@'localhost' identified by 'tars2015' with grant option;
    3. grant all on *.* to 'tars'@'${your machine ip}' identified by 'tars2015' with grant option;
    4. flush privileges;
    5.3 创建数据库

    进入源码的sql目录

    1. cd {$source_folder}/sql

    修改部署的ip为本机内网ip

    1. sed -i "s/192.168.2.131/${your machine ip}/g" `grep 192.168.2.131 -rl ./*`
    2. sed -i "s/db.tars.com/${your machine ip}/g" `grep db.tars.com -rl ./*`
    3. sed -i "s/10.120.129.226/${your machine ip}/g" `grep 10.120.129.226 -rl ./*`

    执行exec-sql.sh脚本

    1. chmod u+x exec-sql.sh
    2. ./exec-sql.sh

    脚本执行后,会创建3个数据库,分别是db_tars、tars_stat、tars_property。

    • db_tars:框架运行依赖的核心数据库,里面包括了服务部署信息、服务模版信息、服务配置信息等等;
    • tars_stat:服务监控数据存储的数据库;
    • tars_property:服务属性监控数据存储的数据库;

    6.安装框架基础服务

    框架服务的安装分两种:

    • 核心基础服务:tarsAdminRegistry, tarsregistry, tarsnode, tarsconfig, tarspatch
    • 普通基础服务:tarsstat, tarsproperty,tarsnotify, tarslog,tarsquerystat,tarsqueryproperty

    核心基础服务必须手工部署,普通基础服务可以通过管理平台发布。

    6.1 准备核心基础服务包
    1. cd {$source_folder}/build
    2. make framework-tar

    命令执行后,会在当前目录生成framework.tgz,这个包包含了tarsAdminRegistry, tarsregistry, tarsnode, tarsconfig, tarspatch 部署相关的文件。

    6.2 准备普通基础服务安装包
    1. make tarsstat-tar
    2. make tarsnotify-tar
    3. make tarsproperty-tar
    4. make tarslog-tar
    5. make tarsquerystat-tar
    6. make tarsqueryproperty-tar

    命令执行后,会在当前目录生成基础服务发布包,可以在管理平台部署完成后,通过管理平台进行部署发布。

    6.3 安装核心基础服务

    将核心基础服务包copy到/usr/local/app/tars目录下,并解压。

    1. mkdir -p /usr/local/app/tars
    2. cp {$source_folder}/build/framework.tgz /usr/local/app/tars
    3. cd /usr/local/app/tars
    4. tar zxvf framwork.tgz

    修改各个服务对应conf目录下配置文件,注意将配置文件中的ip地址修改为本机内网ip地址。

    1. cd /usr/local/app/tars
    2. sed -i "s/192.168.2.131/${your_machine_ip}/g" `grep 192.168.2.131 -rl ./*`
    3. sed -i "s/db.tars.com/${your_machine_ip}/g" `grep db.tars.com -rl ./*`
    4. sed -i "s/registry.tars.com/${your_machine_ip}/g" `grep registry.tars.com -rl ./*`
    5. sed -i "s/web.tars.com/${your_machine_ip}/g" `grep web.tars.com -rl ./*`

    然后在/usr/local/app/tars/目录下,执行脚本,启动tars框架服务。

    1. chmod u+x tars_install.sh
    2. ./tars_install.sh

    部署管理平台并启动web管理平台

    1. tarspatch/util/init.sh
    6.4.安装web管理平台

    下载web源码

    1. git clone https://github.com/TarsCloud/TarsWeb

    修改源码中的配置文件,将配置文件中的ip地址改成本机内网ip地址

    1. cd {$web_source_folder}/web
    2. sed -i 's/db.tars.com/${your_machine_ip}/g' config/webConf.js
    3. sed -i 's/registry.tars.com/${your_machine_ip}/g' config/tars.conf

    创建日志目录

    1. mkdir -p /data/log/tars

    访问站点 浏览器输入${your machine ip}:3000,即可看到web管理界面,如访问不了,可尝试关闭防火墙。

    alt text

    6.5 安装普通基础服务

    平台部署的端口号仅供参考,保证端口无冲突即可

    在安装核心基础服务是,普通基础服务的部署信息已经初始化化了,因此此处只要进行发布即可,以下以tarsstat为例进行操作说明。

    点击运维管理 => 服务部署

    alt_text

    点击服务管理 => 选中一个服务 => 发布管理,上传发布包,即6.2中生成的基础发布包,点击发布即可。

    alt_text

    按照此方式逐个部署tarsnotify、tarsproperty、tarslog、tarsquerystat、tarsqueryproperty。

    注意在服务部署页面选择服务相应的模板,如tarsstat模板为tars.tarsstat, tarsproperty模板为tars.tarsproperty。

    注意tarsquerystat、tarsqueryproperty的协议选择非TARS,其他选择为TARS。

    附录

    • 安装前请先按照此页面介绍准备好软件https://github.com/TarsCloud/Tars/tree/master/build
    • 建议先阅读下文件内容 https://github.com/TarsCloud/Tars/blob/master/build/install.sh (因实际上有些软件依赖在某些脚本中会自动安装,避免重复劳动,熟悉大致的脚本安装过程)
    • 参考前两部分内容,接下来按照安装说明进行安装 https://github.com/TarsCloud/Tars/blob/master/Install.zh.md
    • 安装中遇到的常见问题和注意事项,可阅读 https://github.com/TarsCloud/Tars/blob/master/Install_faq.zh.md
    • 安装教学视频 https://www.bilibili.com/video/av47290510/

    快速安装

    • 使用docker