FengWei
发布于 IP属地北京

【万象】COSMOS安全分析与管理平台 软件部署(集群)

1. 环境准备

1.1  硬件配置

万象软件版部署对磁盘raid和格式没有要求,系统盘建议使用raid1,数据盘建议使用raid5,如做逻辑卷需把所有磁盘都挂载到 / 目录下。 

通常软件部署是 1+3 模式,1台管理端,3台大数据。最小支持 1+1,1台管理端,1台大数据。

名称 系统要求 CPU(核) 内存(GB) 硬盘(GB) 节点数量
管理端  Ubuntu 20.04 乌班图20.4系统下载 16 128G 大于等于 500GB 1
大数据 Centos7.6 centos7.6系统下载 16 128G 大于等于  5TB 3

1.2 网络环境

服务 进程名称 对应端口 用途 备注
管理端 ssh 22 ssh 客户端->管理端
管理端 https 443 web 客户端->管理端
管理端 syslog 514 日志到万象管理端 安全设备->管理端
管理端 nginx-mtls 4443 探针双向认证端口 大数据->管理端 外置探针->管理端(如有外置探针)
管理端 shared-postgresql 5432 postgres 访问端口 大数据->管理端
管理端 datav 8899 DataV 产品大屏 客户端->管理端
管理端 shared-operator 10020 大数据访问管理端,升级GRPC服务端口 大数据->管理端
管理端 shared-operator 10021 大数据访问管理端,升级HTTP服务端口 大数据->管理端
管理端 central-manager 19090 探针管理服务控制端口 外置探针->管理端(如有外置探针)
管理端 pedestal 30089 管理端 grpc 访问端口 大数据->管理端
大数据 ssh 22 ssh 客户端->大数据
大数据 zookeeper 2181 管理端连接hbase服务 管理端->大数据
大数据 shield 5000 安装部署使用 客户端->大数据
大数据 hdfs 8020 分布式文件系统RPC端口 管理端->大数据
大数据 kafka 9093 kafka给探针使用,通过ssl加密 管理端->大数据
大数据 Elasticsearch 9200 日志检索服务 管理端->大数据
大数据 restful 28090 大数据微服务接口 管理端->大数据
大数据 ambari 8080 ambiari服务端口 客户端->大数据

1.3 安装包准备

说明:所有安装包都上传到任意一个 大数据 节点的 /data 目录下面

名称 文件名称 用途 存储位置
管理端安装包 deploy-*.bin 管理端部署 大数据节点下 /data 目录
大数据安装包 bigdata-*.bin 大数据部署 大数据节点下 /data 目录
滑板车 rancher.zip 管理端K8S部署组件 大数据节点下 /data 目录

1.4 安装权限

名称 用户名称 用途
管理端 root(或者具有sudo权限的用户) 部署安装
大数据端 root 部署安装

2. 大数据端部署

2.1 环境检查

检查内容 检查命令 预期结果
关闭防火墙 systemctl stop firewalld systemctl disable firewalld firewalld为disable
关闭 selinux setenforce 0 sed -i '/^SELINUX=/c\SELINUX=disabled' /etc/selinux/config selinux为disable
检查系统时间 date (注意时间是CST和UTC的区别,默认使用CST) ⽐对时间是否正确,如果不正确,⼿动设置时间。 date -s '2022-01-01 12:00:00'
检查umask umask 期望umask⼩于等于 0022
检查磁盘 df -h 大小满足 硬件配置 要求
检查磁盘挂载 lsblk 磁盘全部挂载
检查内存 free -h 大小满足 硬件配置 要求
查看系统版本 大数据系统: cat /etc/redhat-release 版本满足 硬件配置 要求

2.2 准备安装

2.2.1 上传安装包

将 1.3章节 所有安装包上传到 任意大数据节点 /data 目录下,并校验 md5。

推荐使用工具上传安装包,如:FileZilla (下载链接:FileZilla)。

# 创建 /data 目录,并把安装包都上传到该目录下
sudo mkdir /data
# 校验md5
md5sum bigdata-*.bin

2.2.2 解压安装包

# 执行如下命令进行解压
cd /data && chmod +x ./bigdata*.bin && ./bigdata*.bin -C /data/
# 需要输⼊ 解压密码(密码在release中获取)
# 解压时间较久,等待显示:
# Creating network "shield_default" with the default driver
# Creating shield_shield_1 ... done
# 则表示 解压完成

2.2.3 准备可视化环境

(1)正常部署

直接访问大数据安装页面: http://大数据节点IP:5000

(2)其他情况

如在 Linux 虚拟机中部署,外部无法访问虚拟机IP,则在宿主机中执行如下命令。

(宿主机指物理服务器,例如宿主机A里有俩个虚拟机a1,a2。在虚拟机a1中部署了大数据,在虚拟机a2中部署了管理端)

sshpass -p 虚拟机密码 ssh -NL 0.0.0.0:5000:127.0.0.1:5000 root@虚拟机IP
# 执行后访问页面: http://宿主机IP:5000  

2.2.4 大数据部署

(1)配置节点

登录 5000端口 页面后,切换到 节点 页面,点击 新增节点,把大数据的节点都增加到这里。

如果大数据节只有一个,那么就只增加该节点,并选择该节点为主节点。

(注意:管理端 节点 不要在这里增加)

(2)新增节点

注意:管理端节点 不要在这里增加,这里只增加大数据节点。

参数 说明
主节点 如果大数据只有一个节点,那么该节点选择是主节点。如果有多个大数据节点,上传安装包节点选择为主节点。
hostname 大数据节点后台执行 cat /etc/hosts 查看主机名,注意不可填写 localhost。
IP 填写节点IP,注意如阿里云环境,有公网和内网俩个IP,该处填写内网IP。注意不可填写 127.0.0.1 。

(3)安装服务

配置节点完成后,回到 任务 页面,点击 全部执行,等待执行完毕。执行时间通常大于30分钟。若无报错则安装成功。

(4)服务验证

大数据服务安装完成后,可以登录ambiari页面查看大数据服务是否全部正常

# 登录ambari页面,页面密码找产线获取
http://大数据节点IP:8080
# 如端口存在,但页面无法访问,大数据节点执行该命令开启端口 
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

3. 管理端部署

3.1 环境检查

检查内容 检查命令 预期结果
关闭swap分区 sudo swapoff -a 分区关闭
注释swap信息 vim /etc/fstab  使用 # 注释掉swap行
检查系统时间 date (注意时间是CST和UTC的区别,默认使用CST) ⽐对时间是否正确,如果不正确,⼿动设置时间。 date -s '2022-01-01 12:00:00'
检查umask umask 期望umask⼩于等于 0022
检查磁盘 df -h 大小满足 硬件配置 要求
检查磁盘挂载 lsblk 磁盘全部挂载
检查内存 free -h 大小满足 硬件配置 要求
查看系统版本 管理端系统: lsb_release -a 版本满足 硬件配置 要求
检查docker docker --version (建议默认没有docker) 如有docker,需版本为19.03。(默认没有docker即可)

其他检查项:

#登录管理端节点后台,创建 /data 目录
sudo mkdir /data

# 查看该参数值是否为8192
cat /etc/sysctl.conf | grep 'fs.inotify.max_user_instances'

#如果没有该参数,需要手动增加
sudo sh -c "echo 'fs.inotify.max_user_instances=8192' >> /etc/sysctl.conf"
sysctl fs.inotify.max_user_instances
sudo sysctl -p

3.2 准备安装

3.2.1 解压安装包

# 在大数据节点下,解压安装包
cd /data && chmod +x ./deploy*.bin && ./deploy*.bin 
# 需要输⼊ 解压密码(密码在release中获取)
# 没有报错则表示 解压完成。解压后会出现下面步骤所需文件。

3.2.2 创建容器

# 所有安装操作都在 大数据节点的 /data 目录下,所有步骤所需文件都解压在个目录下
docker load < installer.tar

执行完成后,最后一行输出了当前部署的版本号,需要 复制 该版本号,为 3.2.5 导入镜像做准备。

3.2.3 修改config文件

修改 config.yaml 文件内容,默认只修改如下几个参数,其他参数在系统等配置变动时按需修改。

参数 说明
nodes.host 管理端节点IP,如果节点有公网和内网俩个IP,这里填写内网IP。
nodes.user SSH 链接管理端的用户,如果是root用户登录管理端这里就写root,如果是其他有sudo权限用户登录管理端就写对应用户。
modules.pedestal.external.ip 管理端页面访问IP,如果节点有公网和内网俩个IP,这里填写 公网IP。 如果不区分公网内网,只有一个IP,这里就写该IP。
modules.pedestal.internal.ip 管理端内网IP,如果节点有公网和内网俩个IP,这里填写内网IP。如果不区分公网内网,只有一个IP,这里就写该IP。

3.2.4 复制公钥

该公钥是通过 config.yaml 文件中的 private_key 生成的,需要把该公钥复制到管理端的 authorized_keys 中。

# 前面解压管理端安装包后,会在当前目录下生成一个 id_rsa.pub 文件,复制该秘钥内容到管理端
cat /data/id_rsa.pub

# 以乌班图系统为例,复制 id_rsa.pub 内容到管理端的 authorized_keys 文件中
ssh root@管理端节点IP
# 注意复制的公钥应该是一行,检查复制内容是否正确,复制后并不能免密登录管理节点
vi /root/.ssh/authorized_keys

3.2.5 安装部署

# 1.导入镜像
# 执行前注意参数里面的 config.yaml 和 rancher.zip 文件是否和当前目录下载的文件名称一致,如果不一致改成一致即可。
# 该命令默认只修改 “****” 处,此处填写3.2.2章节输出的最后一行中的版本号。
docker run -it --name=installer --network=host -v "$PWD"/config.yaml:/installer/config.yaml -v "$PWD"/rancher.zip:/installer/rancher.zip cosmos-installer:**** sh

# 2.部署安装
# 执行上面命令后,会进入到 “/installer #” 命令行下面,在该界面执行如下命令
# 第一步,创建秘钥文件
./prepare.sh
# 第二步,安装K8S服务到管理端节点
./rancher.sh
# 第三步,安装态势感知管理端
./deploy.sh

导入镜像命令实操截图


导入容器后台 “/installer #” 命令行截图

浏览 (276)
点赞 (3)
收藏
打赏
评论