Skip to content

[LogstashFormatter] ECS support #1771

Open
@rneuter

Description

@rneuter

👋

I was wondering if Elastic Common Schema will be supported in the future.

For example, in the ECS, the host field should be an object but is set as a scalar string in the LogstashFormatter.

Since version 8 of the ELK stack, ECS is enabled by default on a new installation causing ingestion errors:

Log sent to Logstash from a classic Symfony / Monolog:

{
    "@timestamp": "2022-11-01T15:12:00.252242+00:00",
    "@version": 1,
    "host": "7f50b1b63228",
    "message": "Authenticator successful!",
    "type": "app",
    "channel": "security",
    "level": "INFO",
    "monolog_level": 200,
    "context": {
        "token": {
            "Lexik\\Bundle\\JWTAuthenticationBundle\\Security\\Authenticator\\Token\\JWTPostAuthenticationToken": "JWTPostAuthenticationToken(user=\"x.com\", authenticated=true, roles=\"ROLE_USER\")"
        },
        "authenticator": "Lexik\\Bundle\\JWTAuthenticationBundle\\Security\\Authenticator\\JWTAuthenticator"
    }
}

Logstash response:

{
    "error": {
        "type": "mapper_parsing_exception",
        "reason": "object mapping for [host] tried to parse field [host] as object, but found a concrete value"
    }
}

Support of ECS will bring breaking changes but definitely avoid extra setup time on new installations, which should increase time after time.

I'm not sure of how many fields are concerned but from what I see maybe it's only the host field.

Let me know if you are interested about feedback or to discuss on this!

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions