返回 AWS Marketplace 产品列表
FerroStash
可观测性

FerroStash

Rust-native Logstash-compatible 日志管道

~14 MB 二进制文件,毫秒级启动 替换的 AWS 服务: 自管理 Logstash
在 AWS Marketplace 获取

一个 Rust-native、Logstash-compatible 的日志和事件管道。它通过与 Logstash 相同的 input → filter → output 模型摄取、转换并路由事件,native 解析 Logstash pipeline.conf DSL(以及等价的 YAML 形式),无需 JVM。单一静态二进制文件(约 14 MB)可在毫秒内启动,占用数十 MB RAM,因此每台主机可以部署更多 shipper。

典型 Logstash pipeline 占用约 1 GB JVM heap,启动需要数十秒,而 FerroStash 以单一静态二进制文件运行。v1.0 系列实现了 Logstash 9.x plugin set 中生产常用的子集 — 约 88% 的 bundled plugins(111 个中的 98 个),重点覆盖解析和过滤热路径。Inputs 包括 beats、file、tcp、udp、http、syslog、kafka、redis、s3、sqs、jdbc、elasticsearch 和 cloudwatch;filters 包括 grok、dissect、kv、json、mutate、date、geoip、dns、csv、xml、useragent、cidr、fingerprint、translate、aggregate 和 throttle,另有 native Painless-style script filter;outputs 包括 elasticsearch / opensearch、kafka、s3、http、tcp、udp、file、redis、sqs、sns、cloudwatch、email 和 datadog;codecs 包括 json、json_lines、multiline、cef、netflow、avro、msgpack 和 protobuf。可靠性方面,它提供可选的 on-disk persistent queue,支持 at-least-once delivery 和 dead-letter queue(断电持久性 fsync 为 opt-in),并内置用于 node 和 pipeline stats 的 monitoring API。诚实范围:它兼容 Logstash config/pipeline,不是逐字节一致的 100 percent drop-in — 覆盖范围按 plugin 级别计算,已覆盖 plugin 也可能只实现其部分选项,使用缺失 plugin 的配置会在加载时快速失败。

面临挑战

Logstash 是一个灵活的日志和事件管道,但通常的部署需要消耗大约 1GB 的 JVM 堆内存,启动需要数十秒,且每个 shipper 都要运行独立的 JVM 代理运行时。这限制了单台主机上可运行的 shipper 数量,且在容器环境中对内存和启动时间造成了沉重负担。目前的诉求是保留现有的 pipeline.conf 和插件资产,同时摆脱 JVM 占用,实现轻量化运行。

工作原理

  1. 1

    原生运行 input → filter → output

    FerroStash 通过与 Logstash 相同的 input → filter → output 模型来摄取、转换和路由事件。它原生解析 Logstash 的 pipeline.conf DSL(以及等效的 YAML 格式)— 无需 JVM,也无需独立的代理运行时 — 并作为单个静态二进制文件运行。

  2. 2

    实现生产环境常用的插件

    v1.0 系列实现了 111 个捆绑的 Logstash 9.x 插件中的 98 个(约 88%),重点针对解析和过滤的热路径。它覆盖了主要的 inputs、filters、outputs 和 codecs,并包含一个原生的类 Painless 脚本过滤器。使用缺失插件的配置在加载时会快速失败,因此不会发生静默丢弃。

  3. 3

    可靠性与监控

    可选的磁盘持久化队列可提供至少一次(at-least-once)交付(read/ack 游标分离、output ack 后的检查点)和死信队列,并可通过选择性开启 fsync 来保证断电耐久性。内置的监控 API 能够公开节点和管道的统计数据。

产品亮点

兼容 Logstash config/pipeline — native 解析 pipeline.conf DSL(和 YAML),并实现约 88% 的 bundled Logstash 9.x plugins(111 个中的 98 个)。

单一静态二进制文件(~14 MB),无需 JVM;毫秒级启动、数十 MB RAM,让每台主机可部署更多 shipper。

可靠性:on-disk persistent queue(at-least-once + DLQ,opt-in fsync)和内置 monitoring API。诚实范围 — config-compatible,不是逐字节一致的 drop-in。

包含内容

  • 经加固的 Amazon Linux 2023 AMI(arm64 / Graviton,运行于 t4g / c7g / m7g / r7g 级别)
  • 一个实现了 Logstash 兼容日志和事件管道的单个静态 Rust 二进制文件(约 14 MB,无需 JVM,毫秒级启动)
  • 针对 Logstash pipeline.conf DSL 及等效 YAML 格式的原生解析器
  • 111 个捆绑的 Logstash 9.x 插件中的 98 个(约 88%):inputs(beats、file、tcp、udp、http、syslog、kafka、redis、s3、sqs、jdbc、elasticsearch、cloudwatch 等),filters(grok、dissect、kv、json、mutate、date、geoip 等,以及类 Painless 脚本过滤器),outputs(elasticsearch / opensearch、kafka、s3、http、file 等)以及 codecs(json、json_lines、multiline、cef、netflow、avro、msgpack、protobuf)
  • 带有至少一次(at-least-once)交付和死信队列的可选磁盘持久化队列(可选开启 fsync)
  • 展示节点 and 管道统计数据的内置监控 API
  • 无独立控制平面、无遥测数据回传、无许可证密钥验证(通过您的 AWS 账单按实例每小时计费)

适用场景

在保留现有 Logstash pipeline.conf 和插件资产的同时,摆脱 JVM 占用并实现轻量化运行的场景

内存和启动时间受到限制,且希望在每台主机上部署更多 shipper 的容器或边缘环境

使用 grok / dissect / json 解析日志并路由到 Elasticsearch / OpenSearch / Kafka / S3 等目标的数据管道

完全在您自己的 VPC 内运行日志管道,没有独立的控制平面,也没有遥测回传的场景

常见问题

它与 Logstash 的兼容性如何?

FerroStash 与 Logstash 的配置和管道兼容,但并不是字节级 100% 相同的无缝替代品。它原生解析 pipeline.conf DSL,并实现了 111 个捆绑的 Logstash 9.x 插件中的 98 个(约 88%)。兼容性是插件级别的,且支持的插件可能仅实现了其部分选项。使用缺失插件的配置在加载时会快速失败。

它需要 JVM 吗?

不需要。FerroStash 作为单个静态 Rust 二进制文件(约 14 MB)运行,无需 JVM 和独立的代理运行时。它在毫秒级内启动,仅占用数十 MB 的 RAM,因此您可以在每台主机上部署更多 shipper。

有交付保证吗?

可选的磁盘持久化队列可提供至少一次(at-least-once)交付(read/ack 游标分离、output ack 后的检查点)和死信队列。可以通过选择性开启 fsync 来保证断电耐久性。

这是 AWS 服务的替代品吗?

Logstash 是 Elastic 的开源项目,不是 AWS 服务。FerroStash 是一款自托管产品,可在您自己的 Amazon EC2 实例上运行该 Logstash 兼容的日志管道。它以普通 Amazon Linux 2023 AMI 的形式交付,您可以在自己的 VPC 内运行它。

如何计费?

按小时收取的 AMI 软件费用加上您选择的 EC2(t4g / c7g / m7g / r7g 级别,Arm)。按实例类型计量计费,无独立控制平面,无遥测回传,且无许可证密钥检查。

计费模式

按小时收取软件费用 + EC2(t4g / c7g / m7g / r7g 级,Arm)。按实例类型计量。

在 AWS Marketplace 获取