hao.teng
发布于

【雷池】软件版-反向代理WAF(集群)安装部署教程

各位师傅们好,欢迎来到SafeLine下一代 Web 应用防火墙安装部署-软件集群反向代理章节,本次教程中相关版本号仅做举例,实际以安装时的安装版本号为准。

本文会以常见安装步骤作为举例,如有完整部署文档需求可咨询长亭技术支持人员获取。

安装说明

名词定义

【节点】指一台服务器,可以是物理服务器、云服务器
【安装目录】指雷池资源主要保存目录,通常为 /data/safeline
【数据盘】指安装目录所在的硬盘
【管理节点】指雷池集群中的管理服务、日志服务等所在节点
【Agent节点】指雷池集群中的转发和检测服务所在节点

  • 此部署模式分为管理节点Agent节点两部分,需要负载均衡设备负责转发流量到WAF设备实现业务负载和集群的效果,不支持VRRP的VIP模式去实现业务集群效果。

安装前准备

常用工具列表

Linux 下常用工具列表,可以参考进行安装:
tcpdump:网络抓包工具
curl:HTTP 请求工具
vim:编辑文件工具
strace:跟踪系统调用工具
tmux:终端窗口工具
net-tools:其他网络工具
sysstat:性能监控
Ubuntu 下安装,执行 apt install -y tcpdump curl vim strace net-tools sysstat
CentOS 下安装,执行 yum install -y tcpdump curl vim strace net-tools sysstat

资源准备

【节点基本要求】
管理节点
CPU:>= 8 核
内存:>= 16 GB
数据盘容量:>= 500 GB,云服务器需要检查所选数据盘 IOPS 值大于 1000
Agent节点
CPU:>= 4 核
内存:>= 8 GB
数据盘容量:>= 200 GB
操作系统:Ubuntu >= 16.04、CentOS >= 7.4、Debian >= 8,其他 Linux 系统需实际测试,通常都可以安装
推荐系统 Ubuntu 18.04CentOS 7.8

【节点配置说明】
对于 CPU、内存,节点不可低于上述基本要求,Agent节点参考以下数据选择:

模式 节点类型 单核承载流量
反向代理 物理服务器 HTTP:2000qps
HTTPS:250qps
云服务器 HTTP:1000qps
HTTPS:100qps
  • qps 为每秒请求数;cps 为每秒新建连接数

注意:
-计算时,应该满足瓶颈需求,比如 HTTPS 的 cps
-如果客户原来有 nginx 节点配置,也可以参考选配
-对于内存,数值上可以简单认为 CPU 核数的两倍

节点基础配置

以下操作默认在所有节点root 权限下操作
【校准节点时间】
使用 date 命令检查服务器时间是否正确,如不准确需要进行修改:
方案一:让客户提供 NTPServer,配置NTP自动化同步时间,配置方法见:链接
方案二:如客户没有 NTPServer、服务器也不能通公网,手动修改为正确的时间,配置方法见:链接
【确认数据盘可用情况】执行 df -Th /data/safeline检查安装目录所在数据盘 Type,数据盘格式推荐 ext4
【拷贝安装包到节点】
主要为安装文件 safeline-2-software-installer-*.bin,如果为 OEM 版本、arm 版本,名字可能有区别,但安装方式基本一致
通常文件名包含一个 md5 校验值,可以运行如下命令校验 md5 数值是否一致

md5sum safeline-2-software-installer-*.bin

【运行安装包】
将安装文件 safeline-2-software-installer-*.bin 拷贝到节点上,运行时通常会解压出文件,建议放在单独目录执行安装包
执行(需要输入密码):

INSTALL_DIR=safeline-2-`date +%F`
mkdir $INSTALL_DIR
mv safeline-2-software-installer-*.bin $INSTALL_DIR
cd $INSTALL_DIR
chmod +x safeline-2-software-installer-*.bin
./safeline-2-software-installer-*.bin

此步骤检查是否安装 docker,如果没有安装则进行自动安装;
docker 推荐从这里默认安装,日志会输出「Docker 18.06.3-ce installed」类似字样
如果为升级安装,提示是否升级引擎时,默认回车升级到最新引擎:

【调整机器配置】
使用自动化脚本配置机器:
在运行安装包的目录下,进入 waf-tools 子目录,阅读 README.md 使用相关脚本优化机器配置和格式化多余磁盘
【运行安装前检查】
执行 minion check run before-install ,如输出 Failed 项,需要进一步确认后再继续
【使用数据盘存储 docker 数据】
docker 镜像通常位于 /var/lib/docker 目录下,假设数据盘挂载 /data 目录中,可以执行以下命令将 docker 数据存储到数据盘:

systemctl stop docker
mv /var/lib/docker /data/
ln -s /data/docker /var/lib/
systemctl start docker

开始安装

管理节点

【初始化配置】
执行 minion setup -p /data/safeline -t S20Management

  • 记录输出中的「Postgres Password」「Minion API Token」「Minion Cert」,一个样例:
  • 管理节点不接入,即不安装流量转发服务、流量监测服务,侧执行
    minion setup -p /data/safeline -t S20Management --block-service detector --blockservice mario-collector --block-service tengine

【启动服务】
执行systemctl start minion
【检查状态】

  • 执行docker ps -a,检查容器状态都是 Up、Healthy
     【导入证书】
  • 浏览器打开 https://当前机器 IP :9443 访问管理界面,导入证书后登录管理界面进行使用
  • 登录管理界面后,查看「系统信息-节点状态」确认节点正常

Agent节点

【安装前准备】
各节点的主机名不允许重复,如有重复先使用 hostnamectl set-hostname 命令修改主机名
【初始化配置】
执行 minion setup -p /data/safeline -t S20Agent ,按照提示输入并回车:
「Database Password」:输入部署管理时输出的「Postgres Password」,或者在管理节点上获取,执行 minion db get /minion/v1/services/postgres_password
「Minion API TOKEN」:输入部署管理时输出的「Minion API Token」,或者在管理节点上获取,执行 minion db get /minion/v1/services/minion_api_token
「Management Address with Port and Protocol」:输入管理界面访问地址,https://{管理节点 IP}:9443
「Minion Certificate」:输入部署管理时输出的「Minion Cert」,或者在管理节点上获取,执行(已自动把换行全
部换成 \n):cat /data/safeline/resources/management/certs/minion.crt | awk '{printf "%s\\n", $0}';echo

  • 一个样例:

【启动服务】
执行 systemctl start minion
【检查状态】

  • 执行 docker ps -a,检查容器状态都是 UpHealthy
  • 从管理界面上「系统信息-节点状态」查看 Agent 节点的状态
浏览 (562)
点赞 (8)
收藏
打赏
评论