elastic / logstash

Logstash - transport and process your logs, events, or other data
https://www.elastic.co/products/logstash
Other
14.18k stars 3.5k forks source link

[META] Implement ECS-Compatibility Mode in Bundled Plugins #11635

Closed yaauie closed 1 year ago

yaauie commented 4 years ago

Plugins that are bundled with Logstash need to be able to run in an ECS-Compatible mode by default in an upcoming major release of Logstash, unless explicitly configured to do otherwise.

To determine the scope of changes needed to implement an ECS-Compatibility mode, a Logstash plugin will need to be categorized based on its implicit behavour to determine the effort to bring their defaults into ECS compliance:

  • Exclusively uses fields that align with ECS (no ECS-Compatibility mode needed)
  • Uses one or more fields that conflict with ECS (ECS-Compatibility mode required)
  • Uses one or more fields that are undefined in the latest ECS and therefore at risk of future conflict (ECS-Compatibility mode recommended, aiming to minimize this risk)

-- https://github.com/elastic/logstash/issues/11623

Below is our list of bundled plugins. The list will be kept up-to-date with links issues on the individual projects, along with one of the three categories (align, conflict, undefined).

Input Plugins

Input Plugins are generally reliant on Codec Plugins to produce their event structure, but many add metadata related to the source of the input (e.g., sender host info for inbound connections, file paths for discovered files, etc.), and some include embedded Filter Plugins that must separately implement ECS-Compatibility.

Codec Plugins

Codec Plugins produce Events from a sequence of Bytes, and are responsible for the basic structure of those Events, and while some implicitly take the produced structure verbatim from the deserialized input (e.g., JSON*), others decode the bytes they are given into their own structure (e.g., CEF).

Filter Plugins

Filter plugins manipulate Events by reading and writing from their fields. To be ECS-Compatible, a Filter must not read from or write to ECS-conflicting fields unless the field name is explicitly given in the plugin's configuration.

Output Plugins

Output Plugins do not generally manipulate event structure, but are included in this list for completeness as some may benefit from an ECS-Compatibility mode (e.g. Elasticsearch's template management).

Output Plugins

Follow-up Work

inqueue commented 4 years ago

Are there any plans to add Zeek/Suricata ECS support in Logstash?

roaksoax commented 4 years ago

Related issue: https://github.com/elastic/logstash/issues/11306

yaauie commented 4 years ago

Are there any plans to add Zeek/Suricata ECS support in Logstash?

No specific effort that I'm aware of, as both the Zeek and Suricata modules referenced are implemented in Beats (not Logstash).