Tars--------企業級入門實踐篇

背景

上一篇詳細介紹了Tars的背景、優勢與架構等信息,本篇繼續介紹Tars安裝過程。
注:本篇採用CentOS 7(7.6)系統

環境[關閉selinux和清空防火牆規則]

[root@lisea ~]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 
[root@lisea ~]# uname -r
3.10.0-957.5.1.el7.x86_64
[root@lisea ~]# hostname
lisea
[root@lisea ~]# getenforce 
Disabled
[root@lisea ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
[root@lisea ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.21.0.15  netmask 255.255.240.0  broadcast 172.21.15.255
        ether 52:54:00:09:b7:6e  txqueuelen 1000  (Ethernet)
        RX packets 9648  bytes 9083460 (8.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5327  bytes 524204 (511.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 2  bytes 272 (272.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2  bytes 272 (272.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

依賴準備

[root@lisea ~]# yum install gcc gcc-c++ -y
[root@lisea ~]# yum install bison -y
[root@lisea ~]# yum install flex -y
[root@lisea ~]# yum install cmake -y
[root@lisea ~]# yum install ncurses-devel -y 
[root@lisea ~]# yum install zlib-devel -y
[root@lisea ~]# yum install glibc-devel -y
[root@lisea ~]# yum install numactl -y
[root@lisea ~]# yum install git -y

安裝MySql

這裏推薦mysql5.6或者5.7版本的二進制包安裝方式。
本次採用5.7版本安裝,MySQL5.6安裝方式查看歷史MySQL安裝篇幅。
經測試,在安裝8.0版本的MySQL,在後續無法成功編譯TarsFramework。

  • 切換工作路徑至/usr/local/src
    [root@lisea ~]# cd /usr/local/src/
  • 下載MySQL
    [root@lisea src]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.25-linux-glibc2.12-x86_64.tar
  • 解壓 MySQL 5.7 二進制包
    [root@lisea src]# tar xf mysql-5.7.25-linux-glibc2.12-x86_64.tar
    [root@lisea src]# tar xf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
  • 移動 解壓好的MySQL 5.7目錄至/usr/local
    [root@lisea src]# mv mysql-5.7.25-linux-glibc2.12-x86_64 /usr/local
  • 創建MySQL軟連接
    [root@lisea src]# ln -s /usr/local/mysql-5.7.25-linux-glibc2.12-x86_64 /usr/local/mysql
  • 創建 mysql 應用運行用戶
    [root@lisea src]# useradd -r -s /sbin/nologin mysql
  • 創建 MySQL 數據存放目錄
    [root@lisea src]# mkdir -vp /data/mysql_data
    mkdir: created directory `/data'
    mkdir: created directory `/data/mysql_data'
  • 在 MySQL 二進制包目錄中創建 mysql-files 目錄 [MySQL 數據導入/導出數據專放目錄]
    [root@lisea src]# mkdir -v /usr/local/mysql/mysql-files
    mkdir: created directory `/usr/local/mysql/mysql-files'
  • 修改 MySQL 二進制包目錄的所屬用戶與所屬組
    [root@lisea src]# chown root.mysql -R /usr/local/mysql-5.7.25-linux-glibc2.12-x86_64
  • 修改 MySQL 數據目錄與 數據導入/導出專放目錄的所屬用戶與所屬組
    [root@lisea src]# chown mysql.mysql /usr/local/mysql/mysql-files /data/mysql_data
  • 重命名不使用系統自帶 MySQL 配置文件 /etc/my.cnf [ debian類系統在 /etc/mysql/my.cnf ]
    [root@lisea src]# mv /etc/my.cnf{,.old}
  • 初始化
    [root@lisea src]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data
    2019-02-03T13:56:34.415131Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2019-02-03T13:56:35.563289Z 0 [Warning] InnoDB: New log files created, LSN=45790
    2019-02-03T13:56:35.835511Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
    2019-02-03T13:56:35.915147Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 853b8efd-27bb-11e9-9c8d-52540009b76e.
    2019-02-03T13:56:35.925540Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
    2019-02-03T13:56:35.926081Z 1 [Note] A temporary password is generated for root@localhost: wKoMdt7<yNor
  • 開啓 SSL 連接[可選]

    [root@lisea src]# /usr/local/mysql/bin/mysql_ssl_rsa_setup -d /data/mysql_data
  • 修改SSL證書文件所屬用戶和用戶組

    [root@lisea src]# chown mysql.mysql -R /data/mysql_data
  • 創建mysql systemctl啓動腳本[由於博客markdown語法支持問題,無法展示腳本內容,參考MySQL8.0啓動腳本]
    [root@lisea src]# cat /usr/lib/systemd/system/mysqld.service
  • systemd加載啓動配置文件
    [root@lisea src]#  systemctl daemon-reload
  • 創建MySQL配置文件my.cnf, 指定數據目錄
    [root@lisea src]# cat /etc/my.cnf
    [mysqld]
    user = mysql
    bind_address = 0.0.0.0
    character_set_server=utf8mb4
    skip_name_resolve = 1
    max_connections = 800
    max_connect_errors = 1000
    datadir = /data/mysql_data
  • 啓動MySQL服務
    [root@lisea src]# systemctl start mysqld
  • 添加MySQL bin目錄至path變量,並生效環境變量
    
    [root@lisea src]# cat /etc/profile.d/mysql.sh 
    export MYSQL_HOME=/usr/local/mysql
    export PATH=$MYSQL_HOME/bin:$PATH

[root@lisea src]# source /etc/profile

* 通過mysql命令連接mysql服務,並修改默認密碼(本次修改爲123), 默認密碼爲初始化時的隨機密碼
```bash
[root@lisea src]# mysql -uroot -p'wKoMdt7<yNor'
mysql> set password = '123';
Query OK, 0 rows affected (0.00 sec)

tars安裝

  • 下載TarsFramework源碼
    [root@lisea src]# git clone https://github.com/TarsCloud/TarsFramework.git
    Cloning into 'TarsFramework'...
    remote: Enumerating objects: 20, done.
    remote: Counting objects: 100% (20/20), done.
    remote: Compressing objects: 100% (16/16), done.
    remote: Total 465 (delta 6), reused 14 (delta 4), pack-reused 445
    Receiving objects: 100% (465/465), 553.49 KiB | 192.00 KiB/s, done.
    Resolving deltas: 100% (174/174), done.
  • TarsFramework編譯
    [root@lisea src]# cd TarsFramework/build/
    [root@lisea build]# chmod u+x build.sh
    [root@lisea build]# ./build.sh prepare
    [root@lisea build]# ./build.sh all

tars數據庫初始化

  • 注意將${your machine ip}改爲部署機器的IP
  • 如果exec-sql.sh腳本執行出錯,需要腳本里修改數據庫用戶名root對應的密碼
  • 腳本執行後,會創建3個數據庫,分別是db_tars、tars_stat、tars_property。
    • db_tars是框架運行依賴的核心數據庫,裏面包括了服務部署信息、服務模版信息、服務配置信息等等;
    • tars_stat是服務監控數據存儲的數據庫;
    • tars_property是服務屬性監控數據存儲的數據庫;
  • 添加數據庫用戶
    mysql> grant all on *.* to 'tars'@'%' identified by 'tars2015' with grant option;
    Query OK, 0 rows affected, 1 warning (0.08 sec)
    mysql> grant all on *.* to 'tars'@'localhost' identified by 'tars2015' with grant option;
    Query OK, 0 rows affected, 2 warnings (0.00 sec)
    mysql> grant all on *.* to 'tars'@'172.21.0.15' identified by 'tars2015' with grant option;         
    Query OK, 0 rows affected, 1 warning (0.00 sec)
  • 修改部署數據庫的腳本ip信息[sql腳本在framework/sql目錄下,修改部署的ip信息]
    注:172.21.0.15是測試環境地址,修改成你們本地地址即可。
    [root@lisea build]# cd ../sql
    [root@lisea sql]# sed -i "s/192.168.2.131/172.21.0.15/g" `grep 192.168.2.131 -rl ./*`                  
    [root@lisea sql]# sed -i "s/db.tars.com/172.21.0.15/g" `grep db.tars.com -rl ./*`                  
    [root@lisea sql]# sed -i "s/10.120.129.226/172.21.0.15/g" `grep 10.120.129.226 -rl ./*`
  • 修改exec-sql.sh文件數據庫root密碼
    [root@lisea sql]# cat exec-sql.sh 
    mysql -uroot -p123 -e "create database db_tars"
    mysql -uroot -p123 -e "create database tars_stat"
    mysql -uroot -p123 -e "create database tars_property"
    mysql -uroot -p123 -e "create database db_tars_web"
    mysql -uroot -p123 db_tars < db_tars.sql
  • 創建數據庫
    [root@lisea sql]# chmod u+x exec-sql.sh
    [root@lisea sql]# ./exec-sql.sh
    mysql: [Warning] Using a password on the command line interface can be insecure.
    mysql: [Warning] Using a password on the command line interface can be insecure.
    mysql: [Warning] Using a password on the command line interface can be insecure.
    mysql: [Warning] Using a password on the command line interface can be insecure.
    mysql: [Warning] Using a password on the command line interface can be insecure.

tars框架運行環境搭建

框架服務的安裝分兩種:

  • 一種是核心基礎服務(必須的),必須手工部署的,
    • tarsAdminRegistry
    • tarsregistry
    • tarsnode
    • tarsconfig
    • tarspatch
  • 一種是普通基礎服務(可選的),可以通過管理平臺發佈的(和普通服務一樣)。
    • tarsstat
    • tarsproperty
    • tarsnotify
    • tarslog
    • tarsquerystat
    • tarsqueryproperty
  • 準備核心基礎服務安裝包
    會在當前目錄生成framework.tgz 包 這個包包含了 tarsAdminRegistry, tarsregistry, tarsnode, tarsconfig, tarspatch 部署相關的文件
    [root@lisea sql]# cd ../build/
    [root@lisea build]# make framework-tar
  • 普通基礎服務安裝包準備[可選]
    生成的發佈包,在管理平臺部署發佈完成後
    [root@lisea build]# make tarsstat-tar
    [root@lisea build]# make tarsnotify-tar
    [root@lisea build]# make tarsproperty-tar
    [root@lisea build]# make tarslog-tar
    [root@lisea build]# make tarsquerystat-tar
    [root@lisea build]# make tarsqueryproperty-tar

    安裝核心基礎服務

  • 創建基礎服務的工作目錄
    [root@lisea build]# mkdir -vp /usr/local/app/tars
    mkdir: created directory ‘/usr/local/app’
    mkdir: created directory ‘/usr/local/app/tars’
  • 將已打好的框架服務包複製到/usr/local/app/tars/,並解壓
    [root@lisea build]# cp framework.tgz /usr/local/app/tars/
    [root@lisea build]# cd /usr/local/app/tars
    [root@lisea tars]# tar xf /usr/local/app/tars/framework.tgz
  • 修改各個服務對應conf目錄下配置文件,注意將配置文件中的ip地址修改爲本機ip地址

    [root@lisea tars]# cd /usr/local/app/tars
    [root@lisea tars]# sed -i "s/192.168.2.131/172.21.0.15/g" `grep 192.168.2.131 -rl ./*`                  
    [root@lisea tars]# sed -i "s/db.tars.com/172.21.0.15/g" `grep db.tars.com -rl ./*`                               
    [root@lisea tars]# sed -i "s/registry.tars.com/172.21.0.15/g" `grep registry.tars.com -rl ./*`                  
    [root@lisea tars]# sed -i "s/web.tars.com/172.21.0.15/g" `grep web.tars.com -rl ./*` 
  • 啓動tars框架服務
    [root@lisea tars]# chmod u+x tars_install.sh 
    [root@lisea tars]# ./tars_install.sh
  • 部署管理平臺並啓動web管理平臺(管理平臺必須和tarspatch部署在同一臺服務器上)部署tarspatch
    看看rsync進程是否起來了,若沒有看看rsync使用的配置中的ip是否正確(即把web.tars.com替換成本機ip)
    [root@lisea tars]# tarspatch/util/init.sh
  • tarsnode配置crontab監控[可選]
    * * * * * /usr/local/app/tars/tarsnode/util/monitor.sh

    安裝web管理系統

  • 下載tars-web
    [root@lisea tars]# cd /usr/local/app
    [root@lisea app]# git clone https://github.com/TarsCloud/TarsWeb.git
  • 修改配置文件,將配置文件中的ip地址修改爲本機ip(172.21.0.15)地址
    [root@lisea app]# cd TarsWeb/
    [root@lisea TarsWeb]# sed -i 's/db.tars.com/172.21.0.15/g' config/webConf.js                  
    [root@lisea TarsWeb]# sed -i 's/registry.tars.com/172.21.0.15/g' config/tars.conf
  • 安裝npm環境
    [root@lisea TarsWeb]# wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
    [root@lisea TarsWeb]# source ~/.bashrc
    [root@lisea TarsWeb]# nvm install v8.11.3
    [root@lisea TarsWeb]# npm install -g pm2 --registry=https://registry.npm.taobao.org
  • 安裝web管理頁面依賴, 創建日誌目錄,啓動web
    [root@lisea TarsWeb]# npm install --registry=https://registry.npm.taobao.org
    [root@lisea TarsWeb]# mkdir -p /data/log/tars
    [root@lisea TarsWeb]# npm run prd

訪問站點 瀏覽器輸入 ip:3000

效果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章