-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Keep message
field intact when using modules
#8950
Comments
Related to #8448 |
I opened a similar case elastic/ecs#543 which led me to configuration options to do what you seek.
So, while keep_original doesn't appear to be documented, those two items should allow us to do what we need! |
The
I am closing this by now, we can consider reopening if this option is not enough. |
@jsoriano Thanks for the update. I do note that this approach isn't ideal, as in Kibana one has to show both the Perhaps the fix for this is in Kibana -- the ability to say:
However that is clunky as well. Another alternate approach is to have a "post-processor" which runs after the parsing logic, which I can use to copy |
This could be something to evaluate per case. The thing is that it would need to be done per fileset, as each log file has a different nature (some have something like a "message", and some others not). |
Fair enough. That's a valid argument against the keepField parser flag approach, but it bolsters the argument for some kind of post-processor ability to create a single unified field (whether that's message or something else, I don't care) from the various types of inputs, that contains a tailable / easily viewable consistent log without jumping through hoops. I can create a separate issue / feature request for this if you like. |
So.. That's an interesting thought... BUT, if the receiver knew that a certain 'type' of message was made up of constituent fields that were already passed in, then it could reconstruct the message. While that would be useful in the UI alone, we MAY also need to do this in our 'logstash' module so that our downstream systems that are not elastic (ie S3) have the 'original' message (Audit use case). Although for most, just being able to use it in the Logs UI is enough. So, this capability has the possibility of cutting AWS Kinesis costs by at least 10% for everyone who could use this. |
I agree, there should be an easy way to keep the message field intact. |
One easy workaround is to modify the ingest pipeline :
|
Creating an issue as requested by @kvch in this discussion: https://discuss.elastic.co/t/keeping-message-field-intact-with-module-parsing/155452
I use filebeat modules via auto-discover enabled and hinting. Currently, the message field itself is destroyed after parsing. This means that just casual viewing of logs in Kibana or tools like elktail will just shown an empty log message. Here is an example from a Kibana dashboard:
With the current behavior, one has to either add several of the destructured fields to the output view or query, or click into the details of each one. This is not appealing when just trying to get an overall view of a set of logs before digging into the details.
In addition, if I search for
message:(something)
I won't find it. I have to know which destructured field containssomething
to do a search.Can filebeat be configured to parse data out of the message, but leave the
message
field as-is rather than destroying it?The example above used the apache2 module via the annotations:
but I suspect other modules have similar behavior.
The text was updated successfully, but these errors were encountered: