蓝鲸cmdb部署6.0版本

2019年停止维护cmdb项目:https://blog.csdn.net/somezz/article/details/83385671
蓝鲸cmdb项目:https://github.com/Tencent/bk-cmdb/blob/master/docs/wiki/container-support.md

1 蓝鲸cmdb基础版部署

https://bk.tencent.com/docs/document/6.0/127/7549

2 提交服务器mac地址认证:

https://bk.tencent.com/download_ssl/

3 套餐下载页面:

https://bk.tencent.com/download/

4 单机部署

1 环境准备

1.1 禁用 SELinux

setenforce 0 sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config reboot

关闭默认防火墙(firewalld)
安装和运行蓝鲸时,模块之间互相访问的端口策略较多,建议对蓝鲸后台服务器之间关闭防火墙。

1.2 检查默认防火墙状态,如果返回 not running,可以跳过后面的命令

firewall-cmd --state
systemctl stop firewalld  
systemctl disable firewalld

1.3 安装 rsync 命令

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

which rsync
yum -y install rsync

1.4 调整最大文件打开数

如果为默认的 1024,建议通过修改配置文件调整为 102400 或更大。
但是不能大于 /proc/sys/fs/nr_open 的值,该值默认为 1048576。
注意: limits.conf 初始文件的备份。

ulimit -n
cat /proc/sys/fs/nr_open
cat >> /etc/security/limits.conf << EOF
root soft nofile 102400
root hard nofile 102400
EOF
robot

1.5 服务器时间同步

yum install ntpdate
ntpdate cn.pool.ntp.org

1.6 检查是否存在全局 HTTP 代理

echo "$http_proxy" "$https_proxy"

1.7 检查部署机器的主机名

# 修改主机名
hostnamectl set-hostname <新主机名>
# 确认主机名修改成功
hostname

1.8 检查 DNS 配置文件

检查 DNS 配置文件 /etc/resolv.conf 是否被加锁,如有请临时解锁。

# 检查文件属性
lsattr /etc/resolv.conf

# 如有加锁,请临时解锁处理
chattr -i /etc/resolv.conf

2 安装包解压

2.1 源码包解压

cd /data/
tar xf bkce_basic_suite-6.0.4.tgz -C /data

2.2 ssl证书文件解压

获取机器的 MAC 地址后,下载 证书文件,解压到 /data/src/cert 目录下

install -d -m 755 /data/src/cert
tar xf ssl_certificates.tar.gz -C /data/src/cert
chmod 644 /data/src/cert/*

2.3 解压各个产品软件包

cd /data/src/; for f in *gz;do tar xf $f; done
cp -a /data/src/yum /opt

2.4 修改 bk_install 脚本

cd /data/install
sed -i '/start job/i\\t./pcmd.sh\ -m\ job\ \"sed -i '\'/JAVA_OPTS/c\ JAVA_OPTS="-Xms128m -Xmx128m"\'\ /etc/sysconfig/bk-job-*\" bk_install

install.config 这个文件安装脚本会自动生成,无需自行配置。

3 脚本安装

cd /data/install
./install_minibk -y

安装过程中遇到失败的情况,请先定位排查解决后,再重新运行失败时的安装指令。
执行完部署后,执行降低内存消耗脚本。以确保环境的稳定

3.1 执行降低内存消耗脚本

cd /data/install/
bash bin/single_host_low_memory_config.sh tweak all

3.2 加载蓝鲸相关维护命令

source ~/.bashrc

3.3 初始化蓝鲸业务拓扑

./bkcli initdata topo

4 访问蓝鲸

4.1 下面介绍的操作均可能覆盖现有 hosts ,进行操作前请先确认是否需要备份。

将以下内容复制到pc电脑 /etc/hosts 中,并将以下 IP 需更换为本机浏览器可以访问的 IP,然后保存。

10.0.0.2 paas.bktencent.com cmdb.bktencent.com job.bktencent.com jobapi.bktencent.com
10.0.0.3 nodeman.bktencent.com

4.2 获取管理员账户名密码

在任意一台机器上,执行以下命令,获取管理员账号和密码。

grep -E "BK_PAAS_ADMIN_USERNAME|BK_PAAS_ADMIN_PASSWORD" /data/install/bin/04-final/usermgr.env

5 重启

启动蓝鲸所有 SaaS

cd /data/install/
./bkcli start saas-o 

5 集群部署

1 准备工作

1.1 准备机器

建议操作系统: CentOS 7.6 及以上
建议机器配置

  • 生产环境:建议 4 核 16 G,硬盘 100G 以上(可根据实际情况适当调整配置)

  • 机器数量:3 台(假设 ip 分别为:10.0.0.1,10.0.0.2,10.0.0.3)

  • 选择一台为中控机(假设为 10.0.0.1)进行安装部署操作,使用 root 账号登录。

1.2 获取证书

通过 ifconfig 或者 ip addr 命令分别获取 3 台机器第一个内网网卡 MAC 地址

前往蓝鲸官网证书生成页面(https://bk.tencent.com/download_ssl/),根据提示在输入框中填入英文分号分隔的三个 MAC 地址,生成并下载证书

上传证书包至中控机 /data
证书包包名:ssl_certificates.tar.gz

1.3 下载安装包

请前往 蓝鲸官网下载页 下载基础套餐包

1.4 解压相关资源包

解压套餐包(包含蓝鲸相关产品,如 PaaS、CMDB、JOB 等;蓝鲸依赖的 rpm 包,SaaS 镜像,定制 Python 解释器;部署脚本)

cd /data
tar xf bkce_basic_suite-6.0.4.tgz

解压各个产品软件包

cd /data/src/; for f in *gz;do tar xf $f; done

解压证书包

install -d -m 755 /data/src/cert
tar xf /data/ssl_certificates.tar.gz -C /data/src/cert/
chmod 644 /data/src/cert/*

拷贝 rpm 包文件夹到/opt/目录

cp -a /data/src/yum /opt

2 开始部署

2.1 install.config 这个文件安装脚本会自动生成,无需自行配置。

准备 install.config 文件
说明:

gse 与 redis 需要部署在同一台机器上。
当含多个内网 IP 时,默认使用 /sbin/ifconfig 输出中的第一个内网 IP。
部署需要使用标准私有地址,若企业环境使用非标准私有地址,请参考 环境准备-非标准私有地址处理方法

2.2(请根据实际机器的 IP 进行替换第一列的示例 IP 地址,确保三个 IP 之间能互相通信

需要做ssh互信3台

cat << EOF >/data/install/install.config
10.0.0.1 iam,ssm,usermgr,gse,license,redis,consul,mysql,lesscode
10.0.0.2 nginx,consul,mongodb,rabbitmq,appo
10.0.0.3 paas,cmdb,job,zk(config),appt,consul,nodeman(nodeman)
EOF

自定义域名、安装目录以及登陆密码
以下操作只需要在中控机上执行

部署前自定义域名以及安装目录

  • $BK_DOMAIN:需要更新的根域名。

  • $INSTALL_PATH:自定义安装目录。

2.3执行前请使用实际的顶级域名 (如:bktencent.com) 和安装目录进行替换

  • $BK_DOMAIN 替换成你自己域名比如:test.in

  • $INSTALL_PATH 替换成绝对安装路径:/data/bken

cd /data/install 
./configure -d $BK_DOMAIN -p $INSTALL_PATH

部署前自定义 admin 登陆密码

2.4请使用实际的自定义密码替换 BlueKing,以及使用实际的部署脚本路径替换默认的脚本路径 /data/install。

cat > /data/install/bin/03-userdef/usermgr.env << EOF
BK_PAAS_ADMIN_PASSWORD=BlueKing
EOF

2.5执行免密

cd /data/install
bash /data/install/configure_ssh_without_pass

3 开始运行

初始化并检查环境

3.1 初始化环境

./bk_install common

3.2 校验环境和部署的配置

./health_check/check_bk_controller.sh
  • 部署 PaaS 平台

    3.3 安装 PaaS 平台及其依赖服务

    ./bk_install paas

    PaaS 平台部署完成后,可以访问蓝鲸的 PaaS 平台。配置域名访问,请参考 访问蓝鲸 。

  • 部署 app_mgr

    3.4 部署 SaaS 运行环境,正式环境及测试环境

    ./bk_install app_mgr
  • 部署权限中心与用户管理

    3.5 权限中心

    ./bk_install saas-o bk_iam

3.6 用户管理

./bk_install saas-o bk_user_manage
  • 部署 CMDB

    3.7 安装配置平台及其依赖服务

    ./bk_install cmdb
  • 部署 JOB

    3.8 安装作业平台后台模块及其依赖组件

    ./bk_install job
  • 部署 bknodeman
    如需使用跨云管控,请提前将节点管理的外网 IP 写入至节点管理后台服务所在机器的/etc/blueking/env/local.env 文件,详细请参考 开启 proxy。否则请忽略该步骤

开始部署

3.9 安装节点管理后台模块、节点管理 SaaS 及其依赖组件

./bk_install bknodeman

部署标准运维及流程管理
依次执行下列命令部署相关 SaaS。

3.10标准运维

./bk_install saas-o bk_sops

3.11流程管理

./bk_install saas-o bk_itsm
  • 加载蓝鲸相关维护命令

    source ~/.bashrc
  • 初始化蓝鲸业务拓扑

    ./bkcli initdata topo

    部署 lesscode (可选)
    ./bk_install lesscode
    检测相关服务状态
    cd /data/install/
    echo bkssm bkiam usermgr paas cmdb gse job consul | xargs -n 1 ./bkcli check

6 cmdb机器重启操作

如果服务器发生了重启,正常情况下组件会由 systemd 自动拉起(因为安装配置了 systemctl enable)。由于组件分布在单台机器上的实际情况较为复杂,并发启动时存在重连次数的限制导致部分进程自启动会有失败的情况。

1 依然有 failed 状态的进程

如果服务器重启后,

systemctl list-units --failed 

<输出结果除了蓝鲸组件还包括系统的 systemd 服务,请注意分辨>,可根据它们的依赖关系,重新启动底层服务,确认成功后,再启动蓝鲸组件来解决。以下是几种常见场景:

  • kafka 启动依赖 zookeeper 可用

  • cmdb 启动依赖 zookeeper 可用
    监控链路的 bk-influxdb-proxy 和 bk-transfer 依赖 kafka 可用
    注意事项
    以往的脚本提供了 stop all 和 start all 的操作,容易引发误操作,日常维护中,并不需要经常做全部服务的停止和启动。对于第三方组件尽量保证它们稳定运行,但是混搭进程的情况下,有时会因为内存不足导致不断 OOM 触发一系列异常。此刻应该按实际情况重启相关进程,避免全部进程重启的粗暴操作。

2 检查思路

2.1 检查 DNS 配置文件

在部署的 3 台机器上检查 /etc/resolv.conf 文件首行是否存在 nameserver 127.0.0.1 记录。如不存在,请自行加入该文件的首行。
检查相关服务

vim /etc/resolv.conf
nameserver 127.0.0.1

2.2中控机执行命令

echo bkssm bkiam usermgr paas cmdb gse job consul bklog | xargs -n 1 ./bkcli check

如果 check 输出的状态为非 true,那么可以使用 ./bkcli start|restart 拉起。 module 为 check 状态非 true 的模块。

假设 paas,job,gse,bkmonitorv3 自启动失败,可以参考下述命令

2.3 中控机执行

echo paas job gse bkmonitorv3 | xargs -n 1 ./bkcli restart

2.4 如果是模块的某个服务自启动失败,以 gse data 为例

./bkcli restart gse data

job 启动稍微有点慢,可等待 10s~30s 再执行 check 命令。

此外,还可以登录至模块所在的服务器,通过 systemctl start|restart <module> 拉起服务。以 PaaS 为例:

2.4 登录 paas 模块所在的机器

source /data/install/utils.fc
ssh $BK_PAAS_IP

3 重启 paas 服务

systemctl restart bk-paas.target

启动蓝鲸所有 SaaS

./bkcli start saas-o 

7 cmdb卸载

为了防止误操作,卸载蓝鲸不支持批量,请自行批量操作,下面介绍一台机器卸载的方法:

建议先卸载其他节点的机器,最后卸载中控机节点。

拷贝 uninstall.sh 到上一层

cd /data/install
cp uninstall/uninstall.sh . 

根据提示,确认后开始清理操作。

bash uninstall.sh

cmdb变更默认域名

安装部署后,BK_DOMAIN 默认使用的是 bktencent.com,如果需要修改成其他的域名。例如换成 bktencent.org,可以按以下步骤进行:

1备份中控机的 install 目录

tar -czf /data/src/backup/install_ce_$(date +%Y%m%d).tgz -c /data/install

2运行变更域名脚本 (请使用实际的域名进行替换)

cd /data/install
source utils.fc && source ~/.bkrc
./bin/change_bk_domain.sh 新域名

3上述脚本运行成功后:

如果域名是配置的本地 hosts 文件,请修改本机的 hosts 文件。
如果是通过 DNS 解析的,请修改相应的 DNS 解析。
请重新部署所有官方 SaaS

./bkcli install saas-o

4重新部署 lesscode

./bkcli install lesscode

九 cmdb数据库mysql密码查看

磁盘清理:https://bk.tencent.com/docs/document/6.0/127/7571

grep -i mysql /data/install/bin/01-generate/dbadmin.env

登录到mysql界面

mysql --login-path=default-root