Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

「开发者面对面」第三期:这一个个的服务都是做啥的 #176

Open
zclaiqcc opened this issue Jul 28, 2023 · 4 comments
Open

Comments

@zclaiqcc
Copy link
Collaborator

往期传送门

能不能介绍下雷池里面各个服务都是干什么的

上期提到有师傅自己把雷池社区版 DIY 到了 K8s 上,有的师傅也跃跃欲试,但是发现对雷池各个服务是干什么的不太了解,也没搞清楚 compose.yaml 里面各个配置的作用。看到师傅们搞不定配置我们很是着急啊,干脆直接来篇雷池的服务“解密”和说明吧。

先来张雷池的服务架构图。最上面虚线框住的是数据流,也就是访问业务服务器的流量数据的流动情况。中间框起来的部分是雷池的各个服务。

image

各个容器和服务说明:

名称 定义 详情
safeline-mgt-api 管理容器 接收管理后台行为,向其他服务或容器推送消息
safeline-detector 检测容器 执行检测的容器,从 Tengine 进入的流量会转发到该节点检测
safeline-mario 日志容器 记录与统计恶意行为的节点
safeline-tengine 网关 转发网关,有简单的过滤功能
safeline-postgres 关系型数据库 存储攻击日志、保护站点、黑白名单配置的数据库
safeline-redis 缓存数据库 -

因为 compose.yaml 太长了,相关说明就不贴在这里了,有兴趣的可以跳转到 雷池社区版结构与启动配置 文章查看。

我应该给雷池开什么样的机器配置

虽然说社区版在 1C1G 的机器上也能跑起来,但是只能说是测试一下,实际上到生产的话还是比较得预估一个比较合理的机器配置。有很多师傅问到雷池的性能或者是部署所需要的机器配置大小等相关问题。说实话真的很难回答。比如下面的这些情况:

  • 各个业务特征不一样,有的是高并发,有的是高吞吐,有的需要卸载 HTTPS 证书,有的直接检测明文 HTTP 即可,每个不同的特征所需要的配置都有很大差别。
  • 配置的站点数、黑白名单数等功能配置数量也会影响检测性能,毕竟加的规则越多检测肯定就越慢,所以这点也没法一概而论。
  • 不同的师傅所说的 1 核,在硬件上的性能可能都不一致。不同云服务器厂商的不同服务器型号,看着都是 4 核的 CPU,性能差别大了去了。所以也很难有一个全适用的单核能抗住多少多少流量的标准。
  • 核数越多,性能也并不是简单的乘法计算,单台机能承载的 qps 总是有限的

所以说很难有一个统一的标准说我们能在单核上支持多少,最直接的方法就是直接在师傅的环境上用实际的流量去压测。

我们最近就看到一篇很不错的社区版性能测试文章,里面不仅给出了自己的测试结论,更赞的是给出了自己完整详细的测试思路和方法,甚至包含了部分的性能调优,只能说师傅们都太强了 👍

这里只摘录一下测试结论部分,更详细的情况直接跳转到 免费WAF-雷池社区版性能测试 查看。

三个关键服务的性能表现如下表所示(请求含有 1K Body):

image

基于此表,我们可以估算一个综合单核 QPS 数,即雷池如果部署在一台只有一个 CPU 核的设备上,大约能承载多少 QPS,可以这样换算:

image

nginx conf 相关的需求

雷池站点底层对应 nginx 里面的 server,所以说页面上没有支持的功能,可以通过直接修改底层的 conf 文件来自己实现。不过一方面改底层比较麻烦,不是所有师傅都能轻松搞定,另一方面是部分配置改完之后可能会被覆盖回去,影响业务。

GitHub issue 上有很多类似的 nginx conf 相关的需求,这里集中回复一下吧。目前是考虑在 3.0 版本对站点资产做一个重构,不仅仅引入这些各种各样的 nginx conf 配置,还有一些重磅的功能加入,这里只能说敬请期待 😏

结语

以上就是第三期的内容了,欢迎各位师傅多多 DIY,过程中遇到啥困难都直接 issue 见 🚀

觉得社区版还不错的师傅去 chaitin/safeline - GitHub 右上角点个 star,鼓励鼓励我们呗 😏 没有加讨论群的师傅可以扫码进群。

image

@zclaiqcc zclaiqcc pinned this issue Jul 28, 2023
@upbeat-backbone-bose
Copy link

upbeat-backbone-bose commented Nov 17, 2023

@zclaiqcc 文中 [免费WAF-雷池社区版性能测试] 链接已经失效404

@dundunHa
Copy link
Collaborator

补一下性能测试链接:
免费 WAF-雷池社区版性能测试

@cpms
Copy link

cpms commented Nov 28, 2023

最近好像还看到有一个fvm-manager,这个又是什么作用的呢

@upbeat-backbone-bose
Copy link

最近好像还看到有一个fvm-manager,这个又是什么作用的呢

参阅以下官方人员的回复内容,咨询过该问题。

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants