KylinX86 三节点部署

环境准备 (20mins)

准备机器

  1. 建议操作系统 :银河麒麟 V10
  2. 建议机器配置
    • 推荐配置:建议 8 核 32G,硬盘 200G 以上
  3. 机器数量:3 台 (标准部署,不含日志模块、报表模块、APM 模块)
  4. 选择第一台为中控机进行安装部署操作,使用 root 账号登录。
  5. 在每台机器上创建一个 /data 目录(建议挂载独立的磁盘或者分区)
  6. 已准备服务器信息如下:
IP主机名Mac地址YUM源(在线/离线)备注
10.10.24.129control00:50:56:93:58:a6在线crontrol_ip(中控机)
10.10.24.130appo00:50:56:93:e8:61在线appo_ip(APPO服务器)
10.10.24.131appt00:50:56:93:b6:3a在线appt_ip(APPT服务器)

准备介质包(上传至中控机)

序号介质包名文件名上传路径备注
1平台介质包weops-release-4.15LTS-kylinx86.tar.gz/data/文件名以实际出包为准
2证书文件介质包ssl_certificates.tar.gz/data/10.10.24.129-00:50:56:93:58:a6(IP-MAC)
3WeOps介质包嘉为科技-weops-blackall-20210714105936.tar.gz/data/文件名以实际出包为准
4角色初始化文件weops-release-roledist-kylinx86.xlsx/data/initsvr/角色初始化文件下载
5补丁包kylinx86_rpm.tar.gz/data/补丁包下载,不能通外网的客户请额外下载补丁包,并执行相关初始化步骤

WeOps介质包说明:

序号介质包文件名备注
1monitorcenter_saas监控中心SaaS包
2cw_uac_saas告警中心SaaS包
3bk_itsm运维流程管理SaaS包
4weops_saasWeOps SaaS包
5ops-dig数字化运营中心 SaaS包(大屏)
6bk_sops标准运维 SaaS包

准备基础环境(10mins)

安装常用源以及工具

# 操作主机:每台服务器
sed -i 's/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_config
sed -i '/Banner/s/^/#/g' /etc/ssh/sshd_config
systemctl restart sshd
sysctl -w net.core.somaxconn=16384
echo 'net.core.somaxconn=16384' >> /etc/sysctl.conf
# 禁用 motd 提示,否则 init topo 会失败
rm -f /etc/motd
rm -f /etc/motd.d/*
rm -f /etc/issue
rm -f /etc/issue.net
rm -f /etc/issue.d/cockpit.issue
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
yum -y remove mariadb*
yum -y install rsync wget vim telnet bind-utils net-tools tar rsyslog
---
## 额外配置补丁包动作,不能通外网且有安装依赖冲突的客户需上传对应的补丁包和执行此操作
# 非必须操作,如需操作,每台都需执行且拥有 kylinx86_rpm 包。请自行分发到所有服务器
tar xf kylinx86_rpm.tar.gz -C /data/
cat << 'EOF' > /etc/yum.repos.d/weops_kylin_local.repo
[kylinx86]
name=kylinx86
baseurl=file:///data/rpm
enabled=1
gpgcheck=0
EOF
createrepo /data/rpm
yum clean all && yum makecache

配置主机免密

# 操作主机:中控机
ssh-keygen   # 一直按回车确认
ssh-copy-id xx.xx.xx.xx  # 分别添加各台服务器IP,包括本机

解压安装包

# 操作主机:中控机
cd /data/
tar xf weops-release-4.15LTS-kylinx86.tar.gz -C /data/
tar xf weops_deployment_LTS_*.tar.gz -C /data/
tar xf initsvr-kylinx86-*.tar.gz -C /data/

准备角色分布文件

# 操作主机:中控机​
# 打开角色分布文件 weops-release-roledist-kylinx86.xlsx,按照提示填写内容,填写完成后重新上传到 /data/initsvr/ 目录
# 注意事项:
1)修改 ip、主机名称、资源信息等,excel 不要留有空格
2)Gse 和 redis 在同一主机,如有特殊需要可修改角色分布,如无特殊需要不要修改
3)作业平台不可带有下划线
4)请勿提前使用 https,初始化步骤尚未兼容 https 的场景,可以部署完成后再根据文档变更

初始化部署环境 (10mins)

# 操作主机:中控机​
# 初始化角色分布,请确保 ssl 证书已存在 /data/ 目录,且角色初始化文件已存在 /data/initsvr/ 目录
cd /data/initsvr
./initsvr
# 自定义二级域名,非必要不执行,会覆盖之前的域名设置(可选)
# 执行前请使用实际的二级域名 (如:weops.com) 和安装目录进行替换
cd /data/install
./configure -d {{ BK_DOMAIN }}
# 自定义平台登录密码
cat > /data/install/bin/03-userdef/usermgr.env << EOF
BK_PAAS_ADMIN_PASSWORD=WeOps2024
EOF
# 测试服务器 cpu 性能,结果为 2000 以下的需要注意平台使用会慢一些
yum -y install sysbench
sysbench cpu --cpu-max-prime=20000 --threads=16 run | grep 'events per second'

脚本执行后会生成 data/weops/install/.completed.list,每个完成的步骤都会记录,如果需要重新配置,需要删除相关步骤记录。

开始部署平台 (90mins)

注:以下安装命令都在中控机的 /data/install/ 下执行

平台初始化并检查环境 (5mins)

# 操作主机:中控机
# 操作路径:/data/install/
# 初始化环境
cd /data/
tar xf patch_for_kylin-*.tar.gz -C /data/install/
cd /data/install/
./patch_for_kylin.sh init_for_lib64
./bk_install common
cd /data/initsvr/
./initsvr install_cwpip && ./initsvr set_cwpip_src
# 校验环境和部署的配置
cd /data/install/
./health_check/check_bk_controller.sh

平台部署 (75mins)

注意:平台组件若正常部署完成,可以看到提示:

“如果以上步骤执行没有报错,说明你已经完成 XXXXX 的部署,请按照文档继续执行剩余步骤”

若未看到此提示,则说明部署可能失败,请检查部署步骤执行是否有报错!

# 操作主机:中控机
# 操作路径:/data/install/
# 适配 kylin 操作系统
cd /data/install
./patch_for_kylin.sh init_platform
# 部署 paas,安装 PaaS 平台及其依赖服务,该步骤完成后,可以打开 PaaS 平台 (15mins)
./bk_install paas
# 部署app_mgr,部署 SaaS 运行环境,正式环境及测试环境 (12mins)
./bk_install app_mgr
# 部署CMDB,安装配置平台及其依赖服务 (5mins)
./bk_install cmdb
# 部署job,安装作业平台后台模块及其依赖组件 (8mins)
./bk_install job
# 替换 starter
./patch_for_kylin.sh change_starter
# 部署bknodeman,安装节点管理后台模块、节点管理 SaaS 及其依赖组件 (10mins)
./bk_install bknodeman
# 激活第三方服务
去 {domain}/engine/third_servers/ 激活第三方服务,信息填写为 rabbitmq.service.consul、admin、$BK_RABBITMQ_ADMIN_PASSWORD(以自身环境实际密码为准),添加之后点击右侧黄色按钮激活
# 部署bkmonitorv3,安装监控平台后台模块、监控平台 SaaS 及其依赖组件 (25mins)
./bk_install bkmonitorv3

部署官方自带 saas,请按顺序执行 :

# 操作主机:中控机
# 操作路径:/data/install/
cd /data/install
# 权限中心 (2mins)
./bk_install saas-o bk_iam
# 用户管理 (2mins)
./bk_install saas-o bk_user_manage

初始化蓝鲸业务 topo (5mins)

# 操作主机:中控机
# 操作路径:/data/install/
cd /data/install
./bkcli initdata topo

注意:若初始化拓扑报错,请参考附录”初始化拓扑报错”处理后,再进行初始化。

检查相关服务状态 (3mins)

# 操作主机:中控机
# 操作路径:/data/install/
cd /data/install/
echo bkssm bkiam usermgr paas cmdb gse job consul bkmonitorv3 | xargs -n 1 ./bkcli check

检查三台 weops 服务器的 host 信息 (2mins)

# 操作主机:中控机
# 操作路径:/data/install/
cd /data/install
pcmd -m all 'cat /etc/hosts'
# 返回结果需包含以下内容,若存在 host 信息缺失,需手动进行添加 host 信息
10.0.0.2 paas.weops.com cmdb.weops.com job.weops.com jobapi.weops.com
10.0.0.3 nodeman.weops.com

验证访问 paas 平台

DNS 配置

如暂时未将 weops域名添加至 DNS 服务器解析,可直接添加 hosts 记录访问 weops。

用文本编辑器(如Notepad++)打开文件:

C:\Windows\System32\drivers\etc\hosts

将以下内容复制到上述文件内,并将以下 IP 需更换为本机浏览器可以访问的 IP,然后保存。

# 操作主机:客户端
# 将以下内容复制到上述文件内,注意将以下 IP 和域名需更换为实际三台蓝鲸 IP 和域名,然后保存。
10.0.0.2 paas.weops.com cmdb.weops.com job.weops.com jobapi.weops.com weops.weops.com itsm.weops.com
10.0.0.3 nodeman.weops.com

注意:10.0.0.2 为 nginx 模块所在的机器,10.0.0.3 为 nodeman 模块所在的机器,查询方式如下:

# 操作主机:中控机
# 操作路径:/data/install/
# 查询模块所分布在机器的方式:
grep -E "nginx|nodeman" /data/install/install.config

获取管理员账户及密码

# 操作主机:任意一台机器
# 执行下述命令,获取管理员账号和密码
grep -E "BK_PAAS_ADMIN_USERNAME|BK_PAAS_ADMIN_PASSWORD" /data/install/bin/04-final/usermgr.env

开始部署 WeOps (42mins)

WeOps 依赖组件安装 (8mins)

使用 weops_install.sh 脚本可自动完成一些配置项和组件安装,具体可查看附录内容。

注意:仅可执行一次

# 操作主机:中控机
# 操作路径:/data/weops
# 安装依赖组件
source /data/install/utils.fc  # 若提示无此文件或文件夹,请重新 ssh 登录
cd /data/weops/install
bash weops_install.sh components
# patch_for_kylin
cd /data/install/
./patch_for_kylin.sh all

WeOps 集合 SaaS 部署 (15mins)

执行脚本 install_saas.sh 安装 对应的 app_code

例如:./install_saas.sh monitorcenter_saas

1) 脚本会对已经安装好 app_code 放入标记文件 .step_canway_saas ,再次执行如果 app_code 已在该文件中,就会跳过安装,如需要重新安装,编辑该文件去掉对应的 app_code 即可。

# 操作主机:中控机
# 操作路径:/data/install/
# 解压 SaaS 安装包到指定目录,SaaS 包请以实际为准
cd /data/
tar -xf 嘉为科技-weops-Jerko-20210714105936.tar.gz -C /data/src/official_saas
# 命令执行如下,注意请按以下顺序正确安装saas
cd /data/weops/install
./install_saas.sh monitorcenter_saas  # 部署统一监控中心 (2mins)
./install_saas.sh cw_uac_saas  # 部署统一告警中心 V2.0 (2mins)
./install_saas.sh bk_itsm  # 部署 itsm (4mins)
./install_saas.sh bk_sops  # 部署标准运维,若有提示,输入 y 部署即可 (3mins)
./install_saas.sh ops-digital_saas  # 部署数字化运营中心(按需部署)(3mins)
./install_saas.sh weops_saas  # 部署 weops4.x (2mins)
# 部署了大屏和 weops_saas 4.15.3013+ 的客户需更新大屏 sql,没部署大屏的客户不用执行
gunzip -c /data/install/yum/ops-digital_saas.20241017.tgz|mysql --login-path=mysql-default

WeOps 基础配置 (3mins)

WeOps 优化配置

使用 weops_install.sh 脚本可自动完成一些优化配置项(如日志自动清理)

# 操作主机:中控机
# 操作路径:/data/weops
# 配置 WeOps 基础设置
source /data/install/utils.fc  # 若提示无此文件或文件夹,请重新ssh登录
cd /data/weops/install
bash weops_install.sh settings

WeOps 服务初始化

WeOps服务初始化工具说明请查看附录

# 操作主机:中控机
# 操作路径:/data/weops/init_weops_service
cd /data/weops/init_weops_service
python main.py --cmdb --monitor --itsm

初始化权限策略和 snmp 模版

注意:若部署未包含监控模块,最后一个动作会报错,可无视

# 操作主机:appo
docker exec -i $(docker ps -aq -f name=weops_saas*) bash -c "export BK_FILE_PATH=/data/app/code/conf/saas_priv.txt;cd /data/app/code;python manage.py init_role --update;python manage.py init_snmp_template;python manage.py build_role_trees;python manage.py update_network_vault_credential;python manage.py reload_casbin_policy --delete"
# 初始化内置模型,在浏览器使用有 admin 权限的用户访问
${domain}/o/weops_saas/resource/objects/migrate

WeOps 主机安装Agent

  • 操作路径:WeOps -> 管理 -> 节点管理 -> Agent -> 安装Agent -> 远程安装
  • 操作目标:安装 WeOps 平台的服务器的主机Agent

后台初始化配置 (40mins)

监控平台配置

  1. 打开监控平台:
    • 浏览器打开开发者中心(网址:http://{paas.domain.com}/saas/list)
    • 打开监控平台:开发者中心->S-mart应用 -> 点击<监控平台> -> 正式地址

全局配置

  1. 操作路径:监控平台 -> 导航栏 -> 点击<设置> 图标 -> 全局设置
  2. 操作方式:在<全局设置>页面 -> 消息通知渠道 -> 仅勾选语音

告警策略

  1. 操作路径:监控平台 -> 配置 -> 告警策略
  2. 操作方式:在<告警策略>页面 -> 点击<启/停> -> 关闭所有默认策略

告警中心配置

  1. 打开告警中心:
    • 浏览器打开开发者中心(网址:http://{paas.domain.com}/saas/list)
    • 打开告警中心:开发者中心 -> S-mart应用 -> 点击<WeOps告警中心> -> 正式地址

告警转工单配置

1.操作路径:统一告警中心 -> 功能配置 -> 工单系统

2.操作方式:<工单系统>页面 -> 蓝鲸ITSM -> 点击<更多>按钮(三个竖点图标) -> 流程管理 -> 点击<新建>按钮 -> 选择流程<告警转工单> -> 点击<确定>按钮

日志模块部署

日志模块依赖 docker 和 docker-compose。且消耗资源较多,建议独立部署在一台 8C 16G 的服务器上。

日志采集用 kafka:建议在日志服务器或独立服务器部署,kafka 用于收集 filebeat,packetbeat,auditbeat 等beat 的日志数据。(蓝鲸内置的 kafka 版本过低,无法正常使用,必须单独搭建,最低配置可以到 2c4g)

推荐配置:

  • 操作系统 :CentOS 7.9
  • 机器配置 :8 核 32GB,硬盘 500GB 以上且支持扩容(POC 测试可降低至 200GB)

准备工作

准备介质包

序号介质包名文件名称上传路径备注
1日志模块部署介质包weops-release-log.tar.gz/data/docker-compose、依赖组件镜像包

日志模块依赖组件

序号组件名称文件名称镜像名称镜像tag镜像描述
1mongomongo.tgzdocker-bkrepo.cwoa.net/ce1b09/weops-docker/mongo4.2.0mongodb-元数据存储
2opensearchopensearch.tgzdocker-bkrepo.cwoa.net/ce1b09/weops-docker/opensearchv1.1.0新版日志数据存储
3datainsightdatainsight.tgzdocker-bkrepo.cwoa.net/ce1b09/weops-docker/datainsight20240510日志服务主体
4kafkakafka.tgzdocker-bkrepo.cwoa.net/ce1b09/weops-docker/kafka3.6日志采集组件

同步环境变量

特殊说明:若部署服务器已同步蓝鲸环境变量,则跳过,无需执行

# 操作主机:中控机
cd /data/install
# 增加日志模块角色配置,假设日志服务器IP:10.0.1.1,以实际为准
vim install.config
# 增加行:
10.0.1.1 weopslog
./bkcli install bkenv
./bkcli sync common
scp ~/.bkrc ~/.bashrc root@10.0.1.1:~/
# 同步后,注释增加的行后再次同步
vim install.config
# 注释行:
# 10.0.1.1 weopslog
./bkcli install bkenv
./bkcli sync common

部署 docker-ce

特殊说明:若部署服务器已安装docker,则跳过,无需执行

# 操作主机:日志服务器
# 解压日志模块部署包
tar zvf /data/weops-release-log.tar.gz -C /data/
# 配置 Blueking yum源
scp ${crontrol_ip}:/etc/yum.repos.d/Blueking.repo /etc/yum.repos.d/
# 安装 docker-ce,版本:20.10.23
yum install -y docker-ce
# 创建 docker 配置文件daemon.json
mkdir /etc/docker
cp /data/weops-log/docker_conf/daemon.json /etc/docker/daemon.json
# 启动 docker 并设置开机自启
systemctl start docker
systemctl enable docker
# 查看 docker 版本,版本号:20.10.23
docker version

部署 docker-compose

# 操作主机:日志服务器
cp /data/weops-log/docker-compose-linux-x86_64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

导入镜像

# 操作主机:日志服务器
# 自动导入镜像包
/data/weops-log/install/load_images.sh

部署日志

# 操作主机:日志服务器
# 生成配置文件
/data/weops-log/configs/log_config.sh
# 启动容器
docker-compose -f /data/weops/datainsight/docker-compose.yaml up -d
# 部署了日志的客户需要调整接入点配置,在APPT节点操作
# 当有多个接入点的时候,使用以下命令来获取所有接入点并逐个执行
# keys=$(curl -sSL http://127.0.0.1:8501/v1/kv/weops/access_points?keys| jq -r '.[] | select(. != "weops/access_points/")')
# 以 weops/access_points/default 为例
export CONSUL_HTTP_ADDR=http://127.0.0.1:8501
consul kv get weops/access_points/default > /tmp/ac.json
# 修改 ac.json,添加 logip 和 logport 属性,修改后完整的接入点信息如下,其中 logip 为 datainsight 服务的 ip,logport 指向 datainsight 9000 服务端口
# {
#   "ip":"10.10.26.235",
#   "name":"默认区域采集节点",
#   "zone":"default",
#   "port": 8005,
#   "logip": "10.10.25.155",
#   "logport": 9000
# }
# 修改完成后,重新写入接入点信息
curl -XPUT -d @/tmp/ac.json http://127.0.0.1:8501/v1/kv/weops/access_points/default

日志模块初始化配置

SaaS 环境变量说明

更新 WeOps SaaS 环境变量后需重新部署一次SaaS

SaaS ID变量名(默认自带BKAPP前缀)变量值($开头值均为平台变量,需手动获取)备注
weops_saasGRAYLOG_URLhttp://${log_ip}:9000log_ip暂无环境变量,需视日志部署情况而定,示例:http://192.168.1.10:9000
weops_saasGRAYLOG_AUTHYWRtaW46ZGF0YWluc2lnaHQteA==默认账号密码 admin:datainsight-x 的base64编码
weops_saasALARM_SEND_REST_API<REST API 告警源:url>需要在告警中心开启restful告警源,手动复制curl段中的url
weops_saasALARM_SEND_SECRET<REST API 告警源:secret>需要在告警中心开启restful告警源,手动复制curl段中的secret
weops_saasGRAYLOG_API_TOKEN<令牌 sidecar:token>需要在datainsight页面生成
weops_saasLOG_OUTPUT_HOST${log_kafka_ip}:9092日志采集kafka broker,log_kafka_ip为单独部署的日志采集kafka地址,示例:192.168.1.10:9092

日志模块后台页面访问

访问代理配置

  • 假设日志服务器:192.168.1.10
# 操作主机:nginx
# 创建 datainsight.conf 配置文件
cd /usr/local/openresty/nginx/conf/conf.d/
touch datainsight.conf
# 编辑 datainsight.conf 配置文件,配置文件内容如下所示
vim datainsight.conf
# 验证 nginx 配置文件,返回successful为正常
/usr/local/openresty/nginx/sbin/nginx -t
# 若返回正常,则重载 nginx 配置
systemctl restart openresty.service
datainsight.conf 配置文件
server {
   listen 80;
   server_name datainsight.weops.net;
   location / {
       proxy_pass http://192.168.1.10:9000;
  }
}

页面访问

  • host 域名解析配置:<$BK_NGINX_IP> datainsight.weops.net
  • 访问url: http://datainsight.weops.net
  • 用户名:admin
  • 默认密码:datainsight-x

REST API 告警源

  • 告警中心开启RESTful api告警源,获取url和key

sidecar令牌 tocken

  • 操作路径:datainsight -> 系统 -> 用户 -> 系统管理员 -> Administrator -> 点击<编辑令牌> -> 输入<令牌名称:sidecar> -> 点击<创建令牌>
  • GRAYLOG_API_TOKEN : 令牌sidecar的tocken

报表模块部署

报表模块由 trino 和 datart 两个组件服务组成,两者都依赖蓝鲸的 mysql,建议在蓝鲸服务器上部署(或在独立部署的服务器部署,要求已同步蓝鲸的环境变量)

  • trino :负责集成蓝鲸数据源
  • datart:负责提供报表展示

准备工作

准备介质包

序号介质包名文件名上传路径备注
1报表模块部署介质包weops-release-report.tar.gz/data/包含:datart_data.tgz、static.tgz、安装脚本、依赖组件镜像包

报表模块依赖组件

序号组件名称文件名称镜像名称镜像tag镜像描述
1standalone-chromestandalone-chrome.tgzselenium/standalone-chromelatestchrome 容器,用于报表导出
2datartdatart.tgzccr.ccs.tencentyun.com/megalab/datartlatestdatart 容器
3trinotrino.tgzccr.ccs.tencentyun.com/megalab/trino413-amd64trino 容器

报表模块部署先决条件

推荐配置:

操作系统 :CentOS 7.9

机器配置 :8 核 32GB,硬盘 200GB 以上且支持扩容

特殊说明:若部署服务器已安装 docker,则跳过,无需执行
# 操作主机:报表服务器
# 配置 Blueking yum源
scp ${crontrol_ip}:/etc/yum.repos.d/Blueking.repo /etc/yum.repos.d/
# 安装 docker-ce,版本:20.10.23
yum install -y docker-ce
# 创建 docker 配置文件daemon.json
mkdir /etc/docker
cp /data/weops-report/docker_conf/daemon.json /etc/docker/daemon.json
# 启动 docker 并设置开机自启
systemctl start docker
systemctl enable docker
# 查看 docker 版本,版本号:20.10.23
docker version
同步蓝鲸环境变量特殊说明:若部署服务器已同步蓝鲸环境变量,则跳过,无需执行
# 操作主机:中控机
cd /data/install
# 增加报表角色配置,假设报表服务器IP:10.0.0.1,以实际为准
vim install.config
# 增加行:
10.0.0.1 trino
./bkcli install bkenv
./bkcli sync common
scp ~/.bkrc ~/.bashrc root@10.0.0.1:~/
# 同步后,注释增加的行后再次同步
vim install.config
# 注释行:
# 10.0.0.1 trino
./bkcli install bkenv
./bkcli sync common
# 检查 docker 配置项 iptables
特殊说明:若部署报表服务器已启用 docker 的 iptables 配置,则跳过,无需执行
# 操作主机:appt (报表服务器)
# 确认 docker 是否开启 iptables,以下配置需为 true
vim /etc/docker/daemon.json
# 配置项:  
"iptables": true
# 重启docker生效
systemctl restart docker

导入镜像

# 操作主机:报表服务器
cd /data/
tar xf weops-release-report.tar.gz -C /data/
cd /data/weops-report/images
docker load < standalone-chrome_latest.tgz
docker load < datart_latest.tgz
docker load < trino_422-datainsight.tgz

部署报表

配置 mysql

若报表模块部署在 mysql 服务器注意:若部署 datart 的主机和 mysql 为同一台机,则 ${datart主机ip} 应为容器固定 IP,需确认客户环境中是否有使用容器网段 172.172.172.0/24,若未使用,可正常部署
# 操作主机:mysql
# 创建mysql数据库
mysql --login-path=default-root << EOF
create database datart
EOF
# 授权容器网段访问mysql
mysql --login-path=default-root << EOF
GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.172.172.2' IDENTIFIED BY "${BK_MYSQL_ADMIN_PASSWORD}" WITH GRANT OPTION;
FLUSH PRIVILEGES;
EOF
mysql --login-path=default-root << EOF
GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.172.172.10' IDENTIFIED BY "${BK_MYSQL_ADMIN_PASSWORD}" WITH GRANT OPTION;
FLUSH PRIVILEGES;
EOF
若报表模块部署在其他服务器(非mysql服务器)
# 操作主机:mysql
# 创建mysql数据库
mysql --login-path=default-root << EOF
create database datart
EOF
# 授权容器网段访问mysql
mysql --login-path=default-root << EOF
GRANT ALL PRIVILEGES ON *.* TO 'root'@'${datart主机ip}' IDENTIFIED BY "${BK_MYSQL_ADMIN_PASSWORD}" WITH GRANT OPTION;
FLUSH PRIVILEGES;
EOF

部署报表服务,安装 trino 组件

# 操作主机:报表服务器
# 加载环境变量
source /data/install/utils.fc
cd /data/weops-report/
# 如日志服务器 IP 为 192.168.5.10,
# 若无日志模块,则默认填写中控机的 IP
# 示例执行命令如下:
# ./trino_install.sh 192.168.5.10
./trino_install.sh <日志服务器IP or 中控机IP>

安装 datart 组件

# 操作主机:报表服务器
# 加载环境变量
source /data/install/utils.fc
cd /data/weops-report/
# 安装 datart 组件
./datart_install.sh

初始化 datart 内置仪表盘

# 先决条件:报表部署工具包中复制 datart_data_20240201.tgz 文件至 mysql 服务器路径:/data/weops-report/datart_data_20240201.tgz
# 操作主机:mysql
gunzip -c datart_data_*.tgz | mysql --login-path=default-root --database datart

初始化内置仪表盘代理

# 操作主机:报表服务器
# 特殊说明:需从datart容器中复制static到paas服务器/data/bkce/open_paas/paas/
source /data/install/utils.fc
docker cp datart:/apps/static/static /tmp/static
scp -r /tmp/static $BK_PAAS_IP:/data/bkce/open_paas/paas/
# 操作主机:paas
systemctl restart bk-paas-paas

初始化 datart mysql 数据源

# 操作主机:mysql
#!/bin/bash
source /data/install/utils.fc
curl -s 'http://172.172.172.10:8080/api/v1/users/login' -i \
-H 'Content-Type: application/json' \
-d '{"username":"admin","password":"WeOps2023"}' \
--compressed \
--insecure > /tmp/datart.login
export AUTH=$(grep Authorization /tmp/datart.login)
cat << EOF > /tmp/payload.json
{
"config": "{\"dbType\":\"MYSQL\",\"url\":\"jdbc:mysql://${BK_MYSQL_IP}:3306\",\"user\":\"root\",\"password\":\"${BK_MYSQL_ADMIN_PASSWORD}\",\"driverClass\":\"com.mysql.cj.jdbc.Driver\",\"serverAggregate\":false,\"enableSpecialSQL\":false,\"enableSyncSchemas\":true,\"syncInterval\":\"60\",\"properties\":{}}",
"createBy": "1e7f1b3aac2247008e5e0e9be07da599",
"createTime": "2023-05-30 17:33:24",
"id": "e866c2e14c0b4aaf956110a63f7d5ba6",
"index": null,
"isFolder": false,
"name": "mysql",
"orgId": "b044363c75a34df8b40e26c1a61e5dde",
"parentId": null,
"permission": null,
"schemaUpdateDate": "2023-06-05 10:42:16",
"status": 1,
"type": "JDBC",
"updateBy": "1e7f1b3aac2247008e5e0e9be07da599",
"updateTime": "2023-05-30 17:42:01",
"deleteLoading": false
}
EOF
curl -s 'http://172.172.172.10:8080/api/v1/sources/e866c2e14c0b4aaf956110a63f7d5ba6' \
-X 'PUT' \
-H "${AUTH}" \
-H 'Content-Type: application/json' \
--data-binary @/tmp/payload.json \
--compressed \
--insecure && rm -vf /tmp/payload.json /tmp/datart.login

注册报表服务到 consul

# 操作主机:中控机​
#!/bin/bash
consul kv put bkapps/upstreams/prod/datart "[\"${datart主机ip}:8083\"]"
# 重启 nginx
cd /data/install
./bkcli restart nginx

访问代理配置

假设报表服务器:192.168.1.10
# 操作主机:nginx
# 创建 datart.conf 配置文件
cd /usr/local/openresty/nginx/conf/conf.d/
touch datart.conf
# 编辑 datart.conf 配置文件,配置文件内容如下所示
vim datart.conf
# 验证 nginx 配置文件,返回successful为正常
/usr/local/openresty/nginx/sbin/nginx -t
# 若返回正常,则重载 nginx 配置
systemctl restart openresty.service
datart.conf 配置文件server {
  listen 80;
  server_name datart.weops.net;
  location / {
      proxy_pass http://192.168.1.10:8083;
  }
}

APM模块部署

推荐配置:

  • 操作系统 :Kylin x86 v10
  • 机器配置 :8 核 32GB,硬盘 200G 以上
  • 部署方式:建议独立部署在一台服务器上

准备工作

准备介质包

序号介质包名文件名称上传路径备注
1APM模块部署介质包weops-release-apm.tar.gz/data/tempo、alertmanager、agent、prometheus 镜像包

APM模块依赖组件

序号组件名称文件名称镜像名称镜像tag镜像描述
1tempotempo.tgzdocker-bkrepo.cwoa.net/ce1b09/weops-docker/tempo2.3.0APM依赖存储组件
2alertmanageralertmanager.tgzdocker-bkrepo.cwoa.net/ce1b09/weops-docker/alertmanager0.26.0APM告警组件
3agentagent.tgzdocker-bkrepo.cwoa.net/ce1b09/weops-docker/agentlastestAPM依赖数据接收
4prometheusprometheus,tgzdocker-bkrepo.cwoa.net/ce1b09/weops-docker/prometheusweops-4.7APM专用prometheus

同步环境变量

特殊说明:若部署服务器已同步蓝鲸环境变量,则跳过,无需执行

# 操作主机:中控机
cd /data/install
# 增加 APM 模块角色配置,假设 APM 服务器IP:10.0.1.1,以实际为准
vim install.config
# 增加行:
10.0.1.1 weopsapm
./bkcli install bkenv
./bkcli sync common
scp ~/.bkrc ~/.bashrc root@10.0.1.1:~/
# 同步后,注释增加的行后再次同步
vim install.config
# 注释行:
# 10.0.1.1 weopsapm
./bkcli install bkenv
./bkcli sync common

部署 docker-ce

特殊说明:若部署服务器已安装docker,则跳过,无需执行

# 操作主机:APM服务器
# 解压 APM 模块部署包
tar zvf /data/weops-release-apm.tar.gz -C /data/
# 配置 Blueking yum源
scp ${crontrol_ip}:/etc/yum.repos.d/Blueking.repo /etc/yum.repos.d/
# 安装 docker-ce,版本:20.10.23
yum install -y docker-ce
# 创建 docker 配置文件daemon.json
mkdir /etc/docker
cp /data/weops-apm/docker_conf/daemon.json /etc/docker/daemon.json
# 启动 docker 并设置开机自启
systemctl start docker
systemctl enable docker
# 查看 docker 版本,版本号:20.10.23
docker version

部署 docker-compose

# 操作主机:APM服务器
cp /data/weops-log/docker-compose-linux-x86_64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

导入镜像

# 操作主机:APM服务器
# 自动导入镜像包
/data/weops-apm/install/load_images.sh

部署APM

# 操作主机:APM服务器
# 生成配置文件
/data/weops-apm/configs/apm_config.sh
# 启动容器
docker-compose -f /data/weops/tempo/docker-compose.yaml up -d

APM 模块初始化配置

SaaS 环境变量更新

操作路径:登录开发者中心

配置对应 SaaS 的环境变量

SaaS ID变量名(默认自带BKAPP前缀)变量值($开头的值视实际情况而定,需手动获取)
weops_saasAPM_PROMETHEUS_URLhttp://${apm服务的ip}:9094
weops_saasAPM_URLhttp://${apm服务的ip}:3101
weops_saasOTLP_ENDPOINThttp://${apm服务的ip}:4317
cw_uac_saasBKAPP_APM_PROMETHEUS_QUERY_RANGE_URLhttp://${apm服务的ip}:9094/api/v1/query_range

重新部署 SaaS 以生效环境变量:告警中心SaaS、WeOps SaaS

附录

离线 yum 源配置方法

# 备份 repos 文件
mkdir /etc/yum.repos.d/bak
# 把原有的 repo 文件保存到 bak 下
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak

配置系统yum源

预先找对接负责人把 Centos 镜像挂载到服务器或者上传 Centos 镜像到服务器上进行挂载
# yum 源文件目录创建和 repo 文件备份
mkdir -p /data/os
# 创建/data/os目录
mount /dev/cdrom /data/os #挂载镜像到/data/os下
# 配置系统yum源配置文件
vim /etc/yum.repos.d/CentOS-Base.repo
# 写入文件添加以下内容:
[Centos7]
name=Centos7
baseurl=file:///data/os/
enabled=1
gpgcheck=0

配置离线蓝鲸 epel 源

# 上传离线yum源文件包上传到 /data/ 下
# 制作 yum 源
tar -zxvf cwyum.tar.gz -C /data/cwyum # 解压离线yum源
yum -y install yum-utils createrepo # 安装制作epel仓库的工具包
createrepo -v /data/cwyum
# 配置蓝鲸 epel 源配置文件
vim /etc/yum.repos.d/cwyum.repo
# 写入文件添加以下内容:
[cwyum]
name=cwyum
baseurl=file:///data/cwyum
enabled=1  
gpgcheck=0
# yum 源初始化
yum clean all # 清理旧的缓存包
yum makecache # 缓存新的缓存包

部署工具包说明

文件名称用途备注
weops_install.sh主脚本,参数为prepare, components, settings
cw_autoconfig.sh部署环境初始化脚本由主脚本 weops_install.sh 调用执行。执行初始化,若部分步骤失败,则结束时会进行提示。
config.shcw_autoconfig.sh涉及的变量配置文件可根据实际情况调整配置,如:平台包名、主机名等
templates平台架构模板目录,支持3、5、7节点架构不适用于高可用架构
weops_components.shWeOps组件安装的脚本框架各组件的镜像包及安装脚本在部署工具包的components目录中,由weops_components.sh调用执行
install_saas.shWeOps SaaS 的安装脚本
install_saas.envWeOps SaaS 安装脚本的配置文件
canway_saas_vars.txtWeOps SaaS 的环境变量配置文件
weops_settings_dbbackup.sh周期性备份数据库子脚本由主脚本 weops_install.sh 调用执行
weops_settings_logs.sh周期性清理日志配置子脚本由主脚本 weops_install.sh 调用执行
weops_settings_custom.shWeOps 个性化配置子脚本由主脚本 weops_install.sh 调用执行
bkmonitorv3_settings.sh监控后台配置调整子脚本由子脚本 weops_settings_custom.sh 调用执行

日志模块修改默认密码

# 操作主机:日志模块主机
# 日志模块 admin账号的密码是明文的sha256sum值
# 在Linux上可以通过命令获取,例如密码为123456,则:
echo -n 123456 | sha256sum
# 打开graylog.conf修改
vim /data/weops/datainsight/configs/graylog.conf
root_password_sha2 = 新密码的sha256sum
# 重新拉起docker
cd /data/weops/datainsight/
docker-compose down
docker-compose up -d

备注:若修改了默认密码,需要更新WeOps_SaaS环境变量 GRAYLOG_AUTH ,并重新部署SaaS。

WeOps服务初始化工具

本工具提供了一系列脚本来初始化 WeOps 不同模块的服务,包括 CMDB、监控和 ITSM,支持灵活扩展。

使用方法

您可以使用 main.py 脚本初始化 WeOps 服务的不同组件。可用选项如下:

  • --cmdb:启用 CMDB 初始化
  • --monitor:启用监控初始化
  • --itsm:启用 ITSM 初始化

示例

  • 初始化 CMDB:cd /data/weops/init_weops_service/

    python main.py –cmdb
  • 初始化监控:cd /data/weops/init_weops_service/

    python main.py –monitor
  • 初始化 ITSM:cd /data/weops/init_weops_service/

    python main.py –itsm
  • 初始化所有组件:cd /data/weops/init_weops_service/

    python main.py –cmdb –monitor –itsm

模块说明

模块描述
config.py处理服务的配置设置,并为其他模块提供必要的配置数据。
init_cmdb.py通过创建必要的分类、对象和关联来初始化 CMDB 组件。
init_monitor.py通过配置插件并确保所有必要的监控配置到位来初始化监控组件。
init_monitor_other.py处理监控组件的其他初始化任务,例如同步监控对象和初始化仪表板。
init_itsm.py初始化 ITSM 组件,设置必要的工作流和 IT 服务管理的配置。
modify_login_session.py处理会话的登录和 CSRF 令牌初始化。它确保会话已认证并准备好向 WeOps 服务发送请求。
utils.py提供跨不同模块使用的实用功能,包括获取环境变量和安全的 HTTP 请求。
logging_config.py配置项目的日志设置。日志写入 logs/init_weops_service.log,最多保留 3 个历史日志文件。
plugins监控插件源文件的存储路径

日志说明

日志配置为输出到控制台和轮转文件。日志存储在 logs 目录中,最多保留 3 个日志文件。

文件结构

init_weops_service/
├── config.py
├── init_cmdb.py
├── init_monitor.py
├── init_monitor_other.py
├── init_itsm.py
├── modify_login_session.py
├── utils.py
├── logging_config.py
├── main.py
├── plugins
├── logs
| ├── init_weops_service.log
| ├── debug.log
| ├── error.log
| └── uwsgi_utils.log
└── README.md
暂无评论

发送评论 编辑评论


				
上一篇
下一篇