Skip to content
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

Allow setting ingest pipeline via filebeat hints #20722

Closed
segevfiner opened this issue Aug 20, 2020 · 8 comments · Fixed by #30212
Closed

Allow setting ingest pipeline via filebeat hints #20722

segevfiner opened this issue Aug 20, 2020 · 8 comments · Fixed by #30212
Assignees
Labels
enhancement Team:Integrations Label for the Integrations team Team:Platforms Label for the Integrations - Platforms team

Comments

@segevfiner
Copy link

segevfiner commented Aug 20, 2020

Describe the enhancement:
You can already set all/most other properties via autodiscover hints, but it seems that setting an ingest pipeline is missing. Although you can set a module/fileset which do use ingress pipelines internally, working around this using modules when it isn't really made convenient to create and deploy third party out of tree modules. So this is about setting a custom ingress pipeline, created via other means, via autodiscover hints, behaving similarly to the input/output properties available in the configuration file.

Describe a specific use case for the enhancement or feature:

Being able to create a custom ingest pipeline directly in ES and set filebeat to use it for a specific container/pod via autodiscover hints without having to modify filebeat configuration and invent some custom label/annotation to make the pipeline apply only to that container/pod.

@botelastic botelastic bot added the needs_team Indicates that the issue/PR needs a Team:* label label Aug 20, 2020
@andresrc andresrc added enhancement Team:Platforms Label for the Integrations - Platforms team labels Aug 21, 2020
@elasticmachine
Copy link
Collaborator

Pinging @elastic/integrations-platforms (Team:Platforms)

@botelastic botelastic bot removed the needs_team Indicates that the issue/PR needs a Team:* label label Aug 21, 2020
@babadofar
Copy link
Contributor

If you really mean "ingest pipeline" and not "ingress pipeline", I was just looking for the same thing. I actually assumed it already was possible. Specifying pipelines pr. applicaiton makes a lot of sense.

@segevfiner segevfiner changed the title Allow setting ingress pipeline via filebeat hints Allow setting ingest pipeline via filebeat hints Sep 16, 2020
@PBarnard
Copy link

If you really mean "ingest pipeline" and not "ingress pipeline", I was just looking for the same thing. I actually assumed it already was possible. Specifying pipelines pr. applicaiton makes a lot of sense.

Agreed. This would be really helpful. I'm currently having to feed all log events into a single Ingest Pipeline then from there using the "pipeline" processor to branch off depending on Kubernetes namespace or application name.

@botelastic
Copy link

botelastic bot commented Jan 27, 2022

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@botelastic botelastic bot added the Stalled label Jan 27, 2022
@PBarnard
Copy link

@elastic/integrations-platforms any update on this?

@botelastic botelastic bot removed the Stalled label Jan 27, 2022
@ChrsMark ChrsMark added the Team:Integrations Label for the Integrations team label Jan 28, 2022
@ChrsMark
Copy link
Member

Hi @PBarnard and @segevfiner!

We will need to evaluate this further however to be honest I find this addition quite tricky since it would open a significant security discussion. With a pipeline you can load actually a "script" in ES which could do anything. So imagine that one Pod could be deployed with this hint and the pipeline could manipulate events coming into ES from whatever other resource. In addition it would be quite tricky to set propel permissions on this so I would avoid doing this.

Usually ingest pipelines are coming along with modules. In that case did you consider creating a complete module with the required pipeline inside it?

cc: @mukeshelastic @akshay-saraswat @MichaelKatsoulis @tetianakravchenko

@segevfiner
Copy link
Author

Considering you already allow setting modules and processors how would setting the name of an existing ingress pipeline would be any different from a security standpoint?

(Yeah, defining an entire ingress pipeline in an annotation could be risky, but that's not what I'm asking for).

Last I checked modules weren't very convenient to create outside using tools in the filebeat source tree and with lacking documentation in some areas, though it has been a while since I last tried. (This issue was opened in 2020, it is 2022 now)

@ChrsMark
Copy link
Member

Hey @segevfiner thanks for elaborating on this. Initially I thought about providing the option to define and set the entire pipeline.

Maybe setting the just the pipelineId would be a nice to have feature. See https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-input-log.html#_pipeline_12.

I will bring it to team's planning and we should be evaluating this soon!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Team:Integrations Label for the Integrations team Team:Platforms Label for the Integrations - Platforms team
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants