博客 / 用户故事

简化 SIEM:Huntress 如何通过 ClickHouse 提高性能并大幅降低成本

author avatar
ClickHouse 团队
2024 年 11 月 19 日 - 8 分钟阅读

Huntress 的使命是让企业级安全惠及所有人。这家托管安全平台由一群前 NSA 网络运营商于 2015 年创立,提供一系列旨在保护中小型企业免受网络威胁的解决方案。

但尽管 Huntress 将自己定位为一家安全公司,但联合创始人兼 CTO Chris Bisnett 承认——半开玩笑地说——“私底下我们是一家大数据公司。” Huntress 拥有超过 300 万个端点、来自超过 100 万个 Microsoft 365 身份的数据,以及来自大约 50 万个数据源的日志,其分析和处理海量信息的能力对其成功至关重要。

在 2024 年 9 月于纽约举行的见面会上,Chris 解释了切换到 ClickHouse Cloud 如何帮助 Huntress 优化性能、应对扩展挑战并简化其大数据工作流程,同时每月节省数万美元。

SIEM 困境

SIEM(安全信息和事件管理)系统旨在收集、处理和分析来自组织网络内各种来源的日志和安全数据。它充当一个中心枢纽,从防火墙、云基础设施、身份提供商和其他设备中提取信息,以实时检测和响应潜在威胁。

但在最好的情况下,管理 SIEM 也是棘手的。正如 Chris 所描述的那样,挑战是双重的:数量和种类。SIEM 必须处理来自不同来源的大量数据,每种数据都有自己的格式——syslog、JSON、纯文本等等。这要求像 Huntress 这样的公司开发自定义解析器和模式,以标准化数据并使其可用。随着数据量的激增,与处理和存储数据相关的成本也会增加,从而难以保持效率和经济性。

对于 Huntress 而言,标准 SIEM 挑战因其客户(IT 资源有限的中小企业)的需求而放大。“他们没有庞大的预算或内部安全团队,但他们仍然需要与大型企业相同的许多东西,”Chris 在谈到 Huntress 的客户时说道。“因此,必须在某处进行权衡。弄清楚这一点是我们的工作。”

为了向客户提供与企业公司相同水平的 24/7 监控和主动威胁防护,Huntress 需要一个更高效的数据库管理系统,该系统可以处理来自数百万个端点的日志,同时控制成本。增加压力的是在 6-8 个月内改进其 SIEM 解决方案的雄心勃勃的时间表。

“很多人都说做不到,”Chris 说。“但我们还是做到了。”

寻找更好的数据库

Chris 和团队开始寻找一种数据库,该数据库可以处理他们不断增长的数据量,而不会使成本飙升。他们首先探索了熟悉的选项,包括他们以前使用过的 Elasticsearch。但是,尽管 Elasticsearch 提供了强大的搜索功能,但正如 Chris 所说,为 Huntress 的工作负载扩展它“非常昂贵”,每月成本高达 70,000 美元。他们还考虑了 Postgres,但正如 Chris 解释的那样,“问题在于,如果您想扩展它,您必须拥有多个独立的 Postgres 数据库”,这增加了不必要的复杂性和成本。

Microsoft Sentinel 是另一个竞争者,也对其管理大数据量的能力进行了简要评估。然而,对于 Huntress 而言,基于像 Sentinel 这样的现有解决方案构建他们的 SIEM 几乎没有差异化的机会。重要的是通过创建针对其需求量身定制的独特系统来保持竞争优势,而不是依赖预构建的解决方案。

大约在这个时候,他们注意到 ClickHouse Cloud 越来越受欢迎。他们决定试一试,发现托管服务提供了一个可扩展的解决方案,该解决方案以 Elasticsearch 成本的一小部分(对于类似的工作负载,每月约 5,000 美元)满足了 Huntress 的数据需求。ClickHouse 对物化视图和高级查询功能的支持,无需大量配置,使其成为支持其 SIEM 的理想选择,平衡了性能、经济性和客户的特定需求。

“最好的部分是,无需任何维护,”Chris 说。“我们只是在其中摄取大量数据;它非常高效,而且比其他解决方案便宜得多。它满足了所有要求。”

Huntress 的新数据基础设施

Huntress 对 ClickHouse 的实施以其简洁性为特点。“对我来说,简单通常意味着更便宜、更可靠,”Chris 说。“这意味着更少的出错部件。”

作为一家 Ruby on Rails 商店,他们使用 Vector.dev(Datadog 开源的工具)在数据到达 ClickHouse 之前对其进行批处理和转换。根据 Chris 的说法,Vector 允许 Huntress 处理大规模插入——高达每秒 200,000 条记录——ClickHouse “毫不费力”地管理这些插入。这种架构反映了 Chris 的理念,即保持基础设施精简,以最大限度地减少故障点并降低成本和维护要求。

386382601-f9fcb272-9d89-4c88-b29b-6a1900aad069.png

Huntress 的数据管道:Rails 和 Vector 在集成到 ClickHouse 之前处理数据,以获得最佳性能。

数据源通过 Vector 传输,Vector 对数据进行批处理并直接路由到 ClickHouse。该团队使用 HTTP 作为插入方法,利用 Vector 的模板语言将数据字段动态映射到 ClickHouse 表。这种设置使 Huntress 能够无缝扩展其数据摄取,而不会增加复杂性或开销。

沿途学到的经验教训

对于 Huntress 团队而言,实施和扩展 ClickHouse 并非没有挑战。在纽约的演讲中,Chris 分享了一些关键的经验教训

分区

最初,Huntress 尝试按租户和日期对数据进行分区,这遵循了像 Postgres 这样的其他数据库中的常见模式。但是,他们很快遇到了限制,因为 ClickHouse 限制了每次插入的分区数。正如 Chris 解释的那样,他们了解到 ClickHouse 中的分区最适合用于生命周期管理,例如生存时间 (TTL) 配置,而不是用于主数据分片。

表排序

定义合适的排序键对于优化性能非常重要。Huntress 发现,按租户 ID 和其他常用字段对表进行排序可以显着提高查询速度。正如 Chris 解释的那样,“数据的排序、主键和排序键非常重要。这可能是驱动 ClickHouse 性能的最大因素。”

ClickHouse 基于排序键跳过不相关数据的能力是一项强大的功能,但它从一开始就需要精确。Chris 指出,事后修复表顺序可能很复杂且耗时——Huntress 团队对此深有体会。

数据跳过索引

虽然 ClickHouse 的数据跳过索引可以通过忽略不相关的粒度来提高查询性能,但 Chris 说它们“不是魔法”。该团队发现,这些索引的功能与 Postgres 中的二级索引不同;为了有效,必须正确排序数据,并且应有策略地应用索引。当设置不正确时,Huntress 团队几乎没有看到性能提升。“真正的性能问题是必须访问多个部分才能找到我们需要的数据,”Chris 说。

构建可扩展、高效的未来

通过切换到 ClickHouse Cloud,Huntress 改变了其数据管理方法,在提高性能的同时将成本降低了 90% 以上。新设置可以轻松处理每秒高达 200,000 条记录,使 Huntress 能够随着客户群的增长而扩展。ClickHouse 的功能(如物化视图和高级查询功能)为团队提供了创建精简、低维护系统的基础和框架,该系统可以满足他们现在和未来的需求。

迁移到 ClickHouse 不仅增强了 Huntress 交付快速、准确的威胁检测的能力,而且还加强了他们让企业级安全惠及所有人的使命。凭借可扩展且高效的数据基础设施,Huntress 已准备好继续扩展其服务,确保全面、经济实惠的保护仍然触手可及,为世界各地的中小型企业服务。

要了解有关 ClickHouse 如何帮助您提高性能和可扩展性并降低成本的更多信息,请免费试用 ClickHouse Cloud 30 天。

分享这篇文章

订阅我们的新闻通讯

随时了解功能发布、产品路线图、支持和云产品!
正在加载表单...
关注我们
X imageSlack imageGitHub image
Telegram imageMeetup imageRss image