Alle AWS Marketplace-Produkte
FerroStash
Observability

FerroStash

Rust-native Logstash-kompatible Log-Pipeline

~14-MB-Binärdatei, Start in Millisekunden Ersetzter AWS-Dienst: Self-managed Logstash
Im AWS Marketplace erwerben

Eine Rust-native, Logstash-kompatible Log- und Event-Pipeline. Sie nimmt Events über dasselbe input → filter → output-Modell wie Logstash auf, transformiert und routet sie und parst die Logstash pipeline.conf DSL (sowie eine äquivalente YAML-Form) nativ, ohne JVM. Ein einzelnes statisches Binary (etwa 14 MB) startet in Millisekunden und belegt einige Dutzend MB RAM, sodass Sie deutlich mehr Shipper pro Host bündeln können.

Während eine typische Logstash-Pipeline etwa ein Gigabyte JVM-Heap hält und Dutzende Sekunden zum Starten braucht, läuft FerroStash als einzelnes statisches Binary. Die v1.0-Linie implementiert den produktionsüblichen Teil des Logstash 9.x-Plugin-Sets — etwa 88 Prozent der gebündelten Plugins (98 von 111), gewichtet auf den Parsing- und Filtering-Hot-Path. Inputs umfassen beats, file, tcp, udp, http, syslog, kafka, redis, s3, sqs, jdbc, elasticsearch und cloudwatch; Filter umfassen grok, dissect, kv, json, mutate, date, geoip, dns, csv, xml, useragent, cidr, fingerprint, translate, aggregate und throttle plus einen nativen Painless-artigen script-Filter; Outputs umfassen elasticsearch / opensearch, kafka, s3, http, tcp, udp, file, redis, sqs, sns, cloudwatch, email und datadog; Codecs umfassen json, json_lines, multiline, cef, netflow, avro, msgpack und protobuf. Für Zuverlässigkeit bietet es eine optionale on-disk persistent queue mit at-least-once delivery und Dead-Letter-Queue (opt-in fsync für Haltbarkeit bei Stromausfall) sowie eine eingebaute Monitoring API für Node- und Pipeline-Stats. Ehrlicher Scope: Es ist Logstash-config/pipeline-kompatibel, kein byte-identischer 100 Prozent Drop-in — Abdeckung erfolgt auf Plugin-Ebene, ein abgedecktes Plugin kann nur einen Teil seiner Optionen implementieren, und eine Config mit fehlendem Plugin schlägt beim Laden sofort fehl.

Das Problem

Logstash ist eine flexible Log- und Event-Pipeline, aber die übliche Bereitstellung belegt etwa ein Gigabyte JVM-Heap, benötigt Dutzende von Sekunden zum Starten und führt eine separate JVM-Agent-Runtime pro Shipper aus. Dies begrenzt die Anzahl der Shipper, die auf einen Host passen, und belastet den Arbeitsspeicher sowie die Startzeit erheblich, insbesondere in Containern. Das Ziel ist es, bestehende Investitionen in pipeline.conf und Plugins beizubehalten, während der JVM-Footprint eliminiert und ein schlanker Betrieb ermöglicht wird.

Funktionsweise

  1. 1

    Führt input → filter → output nativ aus

    FerroStash erfasst, transformiert und routet Events über dasselbe input → filter → output-Modell wie Logstash. Es parst die Logstash-pipeline.conf-DSL (und ein entsprechendes YAML-Format) nativ — ohne eine JVM und ohne eine separate Agent-Runtime — und läuft als einzelnes statisches Binary.

  2. 2

    Implementiert die in der Produktion gängigen Plugins

    Die v1.0-Reihe implementiert 98 der 111 gebündelten Logstash 9.x-Plugins (ca. 88%), mit Schwerpunkt auf dem Hot-Path für Parsing und Filterung. Sie deckt die wichtigsten Inputs, Filter, Outputs und Codecs ab und enthält einen nativen Script-Filter im Painless-Stil. Eine Konfiguration, die ein fehlendes Plugin verwendet, schlägt beim Laden sofort fehl, sodass kein lautloses Verwerfen stattfindet.

  3. 3

    Zuverlässigkeit und Monitoring

    Eine optionale persistente On-Disk-Queue bietet eine At-Least-Once-Zustellung (Trennung von Read/Ack-Cursor, Checkpoint nach Output-Ack) und eine Dead-Letter-Queue, mit opt-in fsync für Ausfallsicherheit bei Stromausfall. Eine integrierte Monitoring-API stellt Statistiken zu Nodes und Pipelines bereit.

Highlights

Logstash-config/pipeline-kompatibel — parst die pipeline.conf DSL (und YAML) nativ und implementiert etwa 88% der gebündelten Logstash 9.x-Plugins (98 von 111).

Einzelnes statisches Binary (~14 MB), kein JVM; ms-Start und einige Dutzend MB RAM erlauben mehr Shipper pro Host.

Zuverlässigkeit: eine on-disk persistent queue (at-least-once + DLQ, opt-in fsync) und eine eingebaute Monitoring API. Ehrlicher Scope — config-kompatibel, kein byte-identischer Drop-in.

Lieferumfang

  • Gehärtete Amazon Linux 2023 AMI (arm64 / Graviton, läuft auf t4g / c7g / m7g / r7g-Klasse)
  • Ein einzelnes statisches Rust-Binary (ca. 14 MB, keine JVM, Startzeit im Millisekundenbereich), das eine Logstash-kompatible Log- und Event-Pipeline implementiert
  • Ein nativer Parser für die Logstash-pipeline.conf-DSL und ein äquivalentes YAML-Format
  • 98 der 111 gebündelten Logstash 9.x-Plugins (ca. 88%): Inputs (beats, file, tcp, udp, http, syslog, kafka, redis, s3, sqs, jdbc, elasticsearch, cloudwatch und weitere), Filter (grok, dissect, kv, json, mutate, date, geoip und weitere, plus ein Script-Filter im Painless-Stil), Outputs (elasticsearch / opensearch, kafka, s3, http, file und weitere) und Codecs (json, json_lines, multiline, cef, netflow, avro, msgpack, protobuf)
  • Eine optionale persistente On-Disk-Queue mit At-Least-Once-Zustellung und einer Dead-Letter-Queue (opt-in fsync)
  • Eine integrierte Monitoring-API, die Node- und Pipeline-Statistiken bereitstellt
  • Keine separate Control-Plane, kein Telemetrie-Home-Call und keine Lizenzschlüsselprüfung (die Abrechnung erfolgt pro Instanz und Stunde über Ihre AWS-Rechnung)

Anwendungsfälle

Beibehaltung bestehender Investitionen in Logstash-pipeline.conf und Plugins bei gleichzeitig schlankem Betrieb ohne den JVM-Footprint

Container- oder Edge-Umgebungen, in denen Arbeitsspeicher und Startzeit Einschränkungen darstellen und Sie mehr Shipper pro Host ausführen möchten

Pipelines, die Logs mit grok / dissect / json parsen und an Elasticsearch / OpenSearch / Kafka / S3 und Ähnliches routen

Ausführen einer Log-Pipeline vollständig innerhalb Ihrer eigenen VPC, ohne separate Control-Plane und ohne Telemetrie-Home-Call

FAQ

Wie kompatibel ist es mit Logstash?

FerroStash ist konfigurations- und pipelinekompatibel mit Logstash, aber kein byte-identischer 100%-iger Drop-in-Ersatz. Es parst die pipeline.conf-DSL nativ und implementiert 98 der 111 gebündelten Logstash 9.x-Plugins (ca. 88%). Die Abdeckung erfolgt auf Plugin-Ebene, und ein abgedecktes Plugin implementiert unter Umständen nur eine Teilmenge seiner Optionen. Eine Konfiguration, die ein fehlendes Plugin verwendet, schlägt beim Laden sofort fehl.

Benötigt es eine JVM?

Nein. FerroStash läuft als einzelnes statisches Rust-Binary (ca. 14 MB) ohne JVM und ohne separate Agent-Runtime. Es startet in Millisekunden und belegt nur wenige Dutzend MB RAM, sodass Sie mehr Shipper pro Host ausführen können.

Gibt es Zustellgarantien?

Eine optionale persistente On-Disk-Queue bietet eine At-Least-Once-Zustellung (Trennung von Read/Ack-Cursor, Checkpoint nach Output-Ack) und eine Dead-Letter-Queue. Optionales fsync kann für Ausfallsicherheit bei Stromausfall aktiviert werden.

Ist dies ein Ersatz für einen AWS-Service?

Logstash is an open-source project from Elastic and is not an AWS service. FerroStash ist ein selbstverwaltetes Produkt, das diese Logstash-kompatible Log-Pipeline auf Ihren eigenen Amazon EC2-Instanzen ausführt. Es wird als normale Amazon Linux 2023 AMI bereitgestellt, die Sie in Ihrer eigenen VPC ausführen.

Wie erfolgt die Abrechnung?

Eine stündliche AMI-Softwaregebühr zuzüglich der von Ihnen gewählten EC2-Instanz (t4g- / c7g- / m7g- / r7g-Klasse, Arm). Die Abrechnung erfolgt nach Instanztyp, ohne separate Control-Plane, ohne Telemetrie-Home-Call und ohne Lizenzschlüsselprüfung.

Preismodell

Stündliche Softwaregebühr + EC2 (t4g / c7g / m7g / r7g-Klasse, Arm). Abrechnung pro Instance-Typ.

Im AWS Marketplace erwerben