【万象】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 #” 命令行截图