蓝鲸cmdb部署6.0版本
蓝鲸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
- 感谢你赐予我前进的力量