Centos 7 搭建蓝鲸V4.1.16社区版

第一次搭建蓝鲸平台,参考了蓝鲸社区的官方搭建文档。

友情链接:蓝鲸智云社区版V4.1.16用户手册

搭建时遇到了不少的坑,这里做一个详细的安装梳理

主机硬件要求

官方的推荐如下:

Centos 7 搭建蓝鲸V4.1.16社区版

在本地用VMware模拟了三台主机,

  • 准备至少3台 CentOS 7 以上操作系统的机器 蓝鲸V4.1.16不支持最新的CentOS比如Centos7.6.1810
  • 最低配置:2核4G
  • 建议配置: 4核12G 以上
  • 192.168.10.136(中控机)
  • 192.168.10.137
  • 192.168.10.138

我用7.3

Centos 7 搭建蓝鲸V4.1.16社区版

主机环境要求

如标题所述,我在centos 7下在线安装的蓝鲸平台。

如果需要更换本地的yum源可以参考之前写的一篇文章,点击这里

接下来下载安装包到任意一台服务器的/data 目录,该机器作为中控机,把安装包解压并cd到解压后的install目录中,开始安装步骤。

获取安装包

蓝鲸社区版包含软件包和部署脚本包,分别为:

  只需要完整程序包和SSL证书,完整包里包含了组件和脚本,再用分包下载的就是多余!!!

Centos 7 搭建蓝鲸V4.1.16社区版Centos 7 搭建蓝鲸V4.1.16社区版

注意:部署脚本和产品软件得匹配,我最开始都用最上面的稳定版,安装一直失败

Centos 7 搭建蓝鲸V4.1.16社区版

获取证书

        这里注意:下载证书时, 需要同时填写部署 gse, license 的机器 MAC 地址。如果不放心,可以把三台服务器的mac地址都加上通过";"分割。

  1.通过 ifconfig   或  ip addr 或  cat /sys/class/net/eth0/address #注意:这是在线云虚拟主机的命令 本地好像没有此命令

  命令获取install.config文件中,license和gse模块所在服务器的第一个内网网卡的MAC地址。如果分别属于两台服务器,那么两个的MAC地址以英文;分隔。

   Centos 7 搭建蓝鲸V4.1.16社区版

  2.在官网证书生成页面根据输入框提示填入MAC地址,生成并下载证书。

  3.上传证书到中控机

安装准备

CentOS系统设置

1、关闭SELinux

查看状态:  sestatus 或 getenforce Enforcing
临时关闭: setenforce 或 getenforce Permissive
永久关闭: vim /etc/sysconfig/selinux SELINUX=enforcing 修改为 SELINUX=disabled 重启生效 reboot (推荐永久关闭)
   sudo vim /etc/sysconfig/selinux #以root权限进入该文件

2、安装rsync命令

安装脚本依赖rsync分发同步文件。

#检查是否有rsync命令,如果有返回rsync路径,可以跳过后面的命令
which rsync #安装rsync
yum -y install rsync


3、关闭默认防火墙(firewalld)

查看状态: firewall-cmd --state  或  systemctl status firewalld
执  行: systemctl stop firewalld #停止firewalld
   systemctl disable firewalld #禁用firewall开机启动

4、调整最大文件打开数

ulimit -n  #检查当前root账号下的max open files值

如果为默认的1024,建议通过修改配置文件调整为102400或更大。

cat <<EOF > /etc/security/limits.d/-nofile.conf
root soft nofile
root hard nofile
EOF

重启生效

#方法2
vi /etc/security/limits.conf #最后添加
* soft nofile
* hard nofile
hive - nofile
hive - nproc

5、NTP保持时间同步一致

# 检查每台机器当前时间和时区是否一致,若相互之间差别大于3s(考虑批量执行时的时差),建议校时。
date -R
# 查看和ntp server的时间差异(需要外网访问,如果内网有ntpd服务器,自行替换域名为该服务的地址)
ntpdate -d cn.pool.ntp.org

(我的是offset -0.006465 sec 小于1s)

    、vim /etc/resolv.conf
# 配置
nameserver 114.114.114.114
nameserver 8.8.8.8
、执行ntpdate命令。
ntpdate cn.pool.ntp.org
找不到ntpdate,执行:
yum install -y ntpdate 若执行ntp命令报错,重启ntp服务即可。
service ntpd stop
service ntpd start

NTP保持时间同步一致

6、检查是否存在全局HTTP代理

#检查http_proxy https_proxy变量是否设置,若为空可以跳过后面的操作
echo "$http_proxy" "$https_proxy"

7、检查系统umask,建议设为0022

8、网卡配置文件

  • 在网卡配置文件中添加 DNS1=127.0.0.1 的记录。
vi /etc/sysconfig/network-scripts/ifcfg-网卡名    # 根据相应的网卡名进行修改对应的网卡配置文件

Centos 7 搭建蓝鲸V4.1.16社区版

  • 然后重启网络服务,应该可以看到/etc/resolv.conf会自动生成nameserver=127.0.0.1 的记录。
systemctl restart network    # 重启网络
cat /etc/resolv.conf # 查看 dns 配置文件

Centos 7 搭建蓝鲸V4.1.16社区版


9、关闭NetworkManager

#查看NetworkManager状态
systemctl status NetworkManager.service #关闭NetworkManager
systemctl disable NetworkManager.service #将NetworkManager 服务设置开机不启动
systemctl stop NetworkManager.service #重新启动一下network服务 (不然重启设备不能远程时 执行此命令)
systemctl restart NetworkManager.service

上面步骤执行完重启后,再检查一下状态

Centos 7 搭建蓝鲸V4.1.16社区版

 

在这些主机中,选择任意一台机器作为中控机。 将下载的蓝鲸社区版安装包上传到中控机,进入安装包所在目录并解压到 同级目录下。以解压到/data 目录为例:

#以下两个命令执行后,得到完整的src/
tar xf bkce_src-4.1..tgz -C /data
tar xf bkce_common-1.0.0.tgz -C /data #以下命令执行后,得到install/
tar xf install_ce-master-1.4.13.tgz -C /data
#解压证书 以下命令执行后,得到cert/
tar xf ssl_certificates.tar.gz -C /data/src/cert/

解压之后, 得到两个目录: src, install

  • src: 存放蓝鲸产品软件, 以及依赖的开源组件
  • install: 存放安装部署脚本、安装时的参数配置、日常运维脚本等

配置 YUM 源

所有蓝鲸服务器上配置好 yum 源,要求该 yum 源包含 EPEL

 yum repolist  //查看yum源

不能连外网YUM源的环境, 可以配置一个内部的 yum 源 或者本地 YUM 源

更改镜像源 (我的理解是三台都需要配置YUM源和EPEL源),只配置中控机也可以成功安装paas和cmdb,但后续安装job就出错了

yum源
备份:mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
获取:wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
更新:yum clean all
yum makecache epel源
备份:mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup #本机测试时没有epel源 直接进入获取和更新
获取:wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
更新:yum clean all
yum makecache

配置文件修改

在 install 目录下, 共有三个配置

  • install.config
  • globals.env
  • ports.env

install.config  (中控机 192.168.10.136下新增的配置文件:)

192.168.10.136 nginx,appt,rabbitmq,kafka,zk,es,bkdata,consul,fta
192.168.10.137 mongodb,appo,kafka,zk,es,mysql,beanstalk,consul
192.168.10.138 paas,cmdb,job,gse,license,kafka,zk,es,redis,consul,influxdb

修改本地hosts文件:

三台服务器上都需要配置:
# vi /etc/hosts
192.168.10.136 paas.bk.com
192.168.10.136 job.bk.com
192.168.10.166 cmdb.bk.com

pip.conf

在线安装时,依赖pip,需要配置可用的 pip 源。  (ps:没有此文件,则创建?)

vi src/.pip/pip.conf
[global]
index-url = http://mirrors.aliyun.com/pypi/simple
trusted-host = mirrors.aliyun.com

我的系统没有pip命令,需要安装pip

#1首先安装epel扩展源:   (我不需要第1步,直接跳到第2步)
yum -y install epel-release #2更新完成之后,就可安装pip: (提示No package python-pip available.则需要执行第1步)
yum -y install python-pip #3安装完成之后清除cache:
yum clean all

添加nginx源地址:

在192.168.10.136和192.168.10.138下配置:
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

在之后的安装过程中会需要在这两台服务器上安装nginx服务,所以我们提前配置好nginx的yum源

配置 SSH 免密登陆

登录到中控机(192.168.10.136),执行以下操作

cd /data/install
bash configure_ssh_without_pass # 根据提示输入各主机的 root 密码完成免密登陆配置

安装前校验环境是否满足

按文档要求做完环境和部署的配置后,准备开始安装前,请运行以下脚本,来校验是否满足:

若安装的是4.0的版本,对应的install/目录下里没有找到precheck.sh时,可以到社区QQ群文件里下载。

cd /data/install
bash precheck.sh

正常输出如下图所示:

start <<check_ssh_nopass>> ... [OK]
start <<check_password>> ... [OK]
start <<check_cert_mac>> ... [OK]
start <<check_selinux>> ... [OK]
start <<check_umask>> ... [OK]
start <<check_get_lan_ip>> ... [OK]
start <<check_http_proxy>> ... [OK]
start <<check_open_files_limit>> ... [OK]
start <<check_domain>> ... [OK]
start <<check_networkmanager>> ... [OK]

如果发现有[FAIL]的报错,按照提示和本文档修复。修复后,可继续跑precheck.sh脚本,直到不再出现[FAIL]。如果需要从头开始检查,请使用 precheck.sh -r 参数。

这里需要注意的是记得关闭selinux以及firewalld,以免之后安装运行过程中出现问题。

单机安装 (和完整安装2选1)

如果部署全部组件,请执行:

$ cd /data/install
$ ./install_minibk -y

如果按需部署,假设只需要paas,cmdb,job平台,请执行:

$ cd /data/install
$ ./install_minibk
$ ./bk_install paas && ./bk_install cmdb && ./bk_install job

完整安装  顺序执行以下操作完成蓝鲸基础平台的安装

cd /data/install

# 该步骤后,可以打开 paas 平台
./bk_install paas # 安装paas 平台及其依赖服务 # 该步骤完成后, 可以打开 cmdb, 看到蓝鲸业务及示例业务
./bk_install cmdb # 安装 cmdb 及其依赖服务 # 该步骤完成后, 可以打开作业平台, 并执行作业
# 同时在配置平台中可以看到蓝鲸的模块下加入了主机
./bk_install job # 安装作业平台及其依赖组件,并在安装蓝鲸的服务器上装好 gse_agent 供验证 # 该步骤完成后可以在开发者中心的 服务器信息 和 第三方服务信息 中看到已经成功激活的服务器
# 同时也可以进行 saas 应用(除蓝鲸监控和日志检索)的上传部署
./bk_install app_mgr # 部署正式环境及测试环境 # 安装该模块后,可以开始安 saas 应用: 蓝鲸监控及日志检索
./bk_install bkdata # 安装蓝鲸数据平台基础模块及其依赖服务 # 安装 fta 后台
./bk_install fta # 安装故障自愈的后台服务 # 重装一下 gse_agent 并注册正确的集群模块到配置平台
./bkcec install gse_agent # 部署官方SaaS到正式环境(通过命令行从/data/src/official_saas/目录自动部署SaaS)
./bkcec install saas-o

安装成功

Centos 7 搭建蓝鲸V4.1.16社区版

Centos 7 搭建蓝鲸V4.1.16社区版

Centos 7 搭建蓝鲸V4.1.16社区版

浏览器客户机都添加如下解析到
Windows 主机c:\windows\system32\drivers\etc\hosts
Linux or Mac 主机 :\etc\hosts

192.168.10.136   paas.bk.com
192.168.10.136 jobs.bk.com
192.168.10.136 cmdb.bk.com
192.168.10.136 bknetwork.bk.com
后记
看到各种教程都要域名、服务器我就傻傻的去买域名,买虚拟主机。实际上域名不需要,改host就是把域名重定向到了对应ip的服务器上。虚拟主机可以暂时用VM安装虚拟机,但是还没彻底安装成功,各种报错。。
 
 

参考

1 Centos 7 搭建蓝鲸V4.1.16社区版

2 Centos 7 搭建蓝鲸3.1.5社区版

3 [经验分享] 社区版4.0安装部署心得分享

4 官方安装指南

5 蓝鲸智云社区版V4.1单机部署体验

======================================================

错误处理

查看状态  ./bkcec status all

一、安装cmdb时报错 “no package nginx available”

Centos 7 搭建蓝鲸V4.1.16社区版

发现第3台机器 138上 no package nginx available,解决如下:

#在第三台机器上先安装epel:
yum install epel-release #再安装nginx
yum install nginx #查看nginx
whereis nginx

参考 解决 - No package nginx available

二、安装cmdb时 start gse_dba  ...Failed

Centos 7 搭建蓝鲸V4.1.16社区版

//#重装gse,问题解决 (install目录下)
./bkcec stop gse
./bkcec install gse
./bkcec initdata gse
./bkcec start gse //#然后继续安装 cmdb
./bk_install cmdb

参考:蓝鲸平台部署及运维遇到的问题

 
 三、安装job时报错 提示"You have new mail in /var/spool/mail/root"
Centos 7 搭建蓝鲸V4.1.16社区版
 打开指定位置的mail文件,发现提示 "/usr/local/gse/agent/bin/gsectl: line 19: ip: command not found"
 
 Centos 7 搭建蓝鲸V4.1.16社区版

尝试方法:将/usr/local/gse/agent/bin/gsectl 中19行需要用绝对路径 /usr/sbin/ip addr | \

Centos 7 搭建蓝鲸V4.1.16社区版

但是我的系统 /usr/sbin/是下ipmaddr没有ip addr文件,我直接修改成/usr/sbin/ipmaddr | \也报错。

Centos 7 搭建蓝鲸V4.1.16社区版

输入命令 ./bkcec status all

Centos 7 搭建蓝鲸V4.1.16社区版

显示 gse_syncdata 和 gse_procmgr  gse_dataop 退出了

最终也没有解决,我重装了。

 
 
四、安装app_mgr时报错  “request failed. /tmp/activate.rbtmq.tmp not found”
 
Centos 7 搭建蓝鲸V4.1.16社区版

五、安装 initdata for bkdata() 出现 "init dataserver zk fialed"  "migrate failed for bkdata"

Centos 7 搭建蓝鲸V4.1.16社区版

升级init bkdata 报错: init dataserver zk failed. migrate failed for bkdata(dataapi) :::: dig zk.service.consul 按内部域名无法解析处理 https://docs.bk.tencent.com/bkce_install_guide/trouble_shooting/internal_domain_error.html

Centos 7 搭建蓝鲸V4.1.16社区版

需要在

/etc/resolv.conf
第一行添加
nameserver 127.0.0.1

(ps:此步应该在最开始安装前进行,这里我加了继续安装还是报错。。并未解决)

============================
 
其他问题 可以参考官方论坛 https://bk.tencent.com/s-mart/community/
 
上一篇:JsRender语法


下一篇:LRU Cache [LeetCode]