第一次搭建蓝鲸平台,参考了蓝鲸社区的官方搭建文档。
友情链接:蓝鲸智云社区版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下在线安装的蓝鲸平台。
如果需要更换本地的yum源可以参考之前写的一篇文章,点击这里
接下来下载安装包到任意一台服务器的/data 目录,该机器作为中控机,把安装包解压并cd到解压后的install目录中,开始安装步骤。
获取安装包
蓝鲸社区版包含软件包和部署脚本包,分别为:
- bkce_product-4.1.16.tgz (下载:V4.1.16程序包) 下载地址: http://bk.tencent.com/download/
- bkce_common-1.0.0.tgz (下载:V1.0.0开源组件) 下载地址: https://bk.tencent.com/download_sdk/
- ibkce_install-1.4.13.tgz(下载:V1.4.13 部署脚本) 下载地址: https://bk.tencent.com/download_sdk/
- SSL证书:下载地址:http://bk.tencent.com/download_ssl
只需要完整程序包和SSL证书,完整包里包含了组件和脚本,再用分包下载的就是多余!!!
注意:部署脚本和产品软件得匹配,我最开始都用最上面的稳定版,安装一直失败
获取证书
这里注意:下载证书时, 需要同时填写部署 gse, license 的机器 MAC 地址。如果不放心,可以把三台服务器的mac地址都加上通过";"分割。
1.通过 ifconfig 或 ip addr 或 cat /sys/class/net/eth0/address #注意:这是在线云虚拟主机的命令 本地好像没有此命令
命令获取install.config文件中,license和gse模块所在服务器的第一个内网网卡的MAC地址。如果分别属于两台服务器,那么两个的MAC地址以英文;分隔。
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-网卡名 # 根据相应的网卡名进行修改对应的网卡配置文件
- 然后重启网络服务,应该可以看到
/etc/resolv.conf
会自动生成nameserver=127.0.0.1
的记录。
systemctl restart network # 重启网络
cat /etc/resolv.conf # 查看 dns 配置文件
9、关闭NetworkManager
#查看NetworkManager状态
systemctl status NetworkManager.service #关闭NetworkManager
systemctl disable NetworkManager.service #将NetworkManager 服务设置开机不启动
systemctl stop NetworkManager.service #重新启动一下network服务 (不然重启设备不能远程时 执行此命令)
systemctl restart NetworkManager.service
上面步骤执行完重启后,再检查一下状态
在这些主机中,选择任意一台机器作为中控机。 将下载的蓝鲸社区版安装包上传到中控机,进入安装包所在目录并解压到 同级目录下。以解压到/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
安装成功
浏览器客户机都添加如下解析到
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
参考
4 官方安装指南
======================================================
错误处理
查看状态 ./bkcec status all
一、安装cmdb时
报错 “no package nginx available”
发现第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
//#重装gse,问题解决 (install目录下)
./bkcec stop gse
./bkcec install gse
./bkcec initdata gse
./bkcec start gse //#然后继续安装 cmdb
./bk_install cmdb
尝试方法:将/usr/local/gse/agent/bin/gsectl 中19行需要用绝对路径 /usr/sbin/ip addr | \
但是我的系统 /usr/sbin/是下ipmaddr没有ip addr文件,我直接修改成/usr/sbin/ipmaddr | \也报错。
输入命令 ./bkcec status all
显示 gse_syncdata 和 gse_procmgr gse_dataop 退出了
最终也没有解决,我重装了。
五、安装 initdata for bkdata() 出现 "init dataserver zk fialed" "migrate failed for bkdata"
需要在
/etc/resolv.conf
第一行添加
nameserver 127.0.0.1
(ps:此步应该在最开始安装前进行,这里我加了继续安装还是报错。。并未解决)