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

Doc: Add tutorial for filter-elastic_integration #15932

Open
wants to merge 10 commits into
base: main
Choose a base branch
from

Conversation

karenzone
Copy link
Contributor

@karenzone karenzone commented Feb 9, 2024

Starts with tutorial content from gdoc and converts it to asciidoctor format.

PREVIEW: https://logstash_bk_15932.docs-preview.app.elstc.co/guide/en/logstash/master/ea-integrations-tutorial.html

Closes: #15871

@karenzone
Copy link
Contributor Author

run docs-build

Copy link
Member

@yaauie yaauie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know this is in draft form, but I'm hoping some suggestions can steer this in a way that de-elevates the implementation details about Ingest Node Pipelines and elevates the plugin's true purpose: running Elastic Integrations inside Logstash.

I'm also hoping to trim out some security-bypassing configuration from the config examples.

docs/static/ea-integration-tutorial.asciidoc Outdated Show resolved Hide resolved
docs/static/ea-integration-tutorial.asciidoc Outdated Show resolved Hide resolved
docs/static/ea-integration-tutorial.asciidoc Outdated Show resolved Hide resolved
docs/static/ea-integration-tutorial.asciidoc Outdated Show resolved Hide resolved
docs/static/ea-integration-tutorial.asciidoc Outdated Show resolved Hide resolved
docs/static/ea-integration-tutorial.asciidoc Outdated Show resolved Hide resolved
docs/static/ea-integration-tutorial.asciidoc Outdated Show resolved Hide resolved
docs/static/ea-integrations.asciidoc Outdated Show resolved Hide resolved
docs/static/ea-integration-tutorial.asciidoc Outdated Show resolved Hide resolved
docs/static/ea-integration-tutorial.asciidoc Outdated Show resolved Hide resolved
@karenzone
Copy link
Contributor Author

I know this is in draft form

Yes, still very much in draft form so that we can get a stake in the ground. But not too early to register directional comments, so thanks for this.

@karenzone
Copy link
Contributor Author

karenzone commented Apr 29, 2024

@yaauie @mashhurs You requested a chance to review this "sooner rather than later." I'm still working on it, and now would be a good time to check it out. Thanks!

Copy link
Member

@yaauie yaauie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've left a couple of inline comments :)

docs/static/ea-integration-tutorial.asciidoc Outdated Show resolved Hide resolved
docs/static/ea-integration-tutorial.asciidoc Outdated Show resolved Hide resolved
hosts => "{es-host}:9200"
password => "changeme"
user => "elastic"
cacert => "/usr/share/logstash/config/certs/ca-cert.pem"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Modern versions of the Elasticsearch Output plugin still support legacy settings like cacert, but they also support (and prefer) the normalized SSL settings that match the ones in the Elastic Integration Filter.

Suggested change
cacert => "/usr/share/logstash/config/certs/ca-cert.pem"
ssl_certificate_authorities => "/usr/share/logstash/config/certs/ca-cert.pem"

docs/static/ea-integration-tutorial.asciidoc Outdated Show resolved Hide resolved
docs/static/ea-integration-tutorial.asciidoc Outdated Show resolved Hide resolved
Comment on lines +17 to +18
This tutorial walks you through adding the {integrations-docs}/crowdstrike-intro[Crowdstrike integration], using {ls} to
remove the `_version` field, and then sending the data to {ess} or self-managed {es}.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe that removing the _version field was a workaround for the specific ingest pipeline setting the _version field on ingest document instead of on the ingest document's metadata. When it gets put on the metadata, our filter correctly propagates it to the right places on the resulting event so that downstream ES output can choose to use it or not depending on its configuration.

My worry here is that people will copy/paste this config and assume that it is necessary.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ToDo: Come up with a better example that won't mislead users

docs/static/ea-integration-tutorial.asciidoc Outdated Show resolved Hide resolved
docs/static/ea-integration-tutorial.asciidoc Outdated Show resolved Hide resolved
@jamiehynds
Copy link

Hey @karenzone, do you think this tutorial is close to being published? We're starting to promote the integrations filter to customer and internally via enablement sessions. The current documentation provides no guidance as to how to actually get the pipelines from our integrations into Logstash, and this tutorial seems to bridge that gap. If it's close to being published I can share that'll have the relevant guidance coming soon.

@karenzone
Copy link
Contributor Author

@jamiehynds, this work is being picked up again, and should be published soon.

@karenzone karenzone requested a review from mashhurs November 8, 2024 23:08
and uses them to apply the transformations from Elastic integrations. This allows you to to further process events in the Logstash pipeline before sending them to their
configured destinations.

This tutorial walks you through adding the {integrations-docs}/crowdstrike-intro[Crowdstrike integration], using {ls} to
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@flexitrev, would you like to highlight a different integration for this tutorial and use case?

@karenzone karenzone marked this pull request as ready for review November 8, 2024 23:14
[[ea-integrations-tutorial]]
=== Tutorial: Using the {ls} `elastic_integration filter` to extend Elastic {integrations}
++++
<titleabbrev>Tutorial: {ls} `elastic_integration filter`</titleabbrev>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<titleabbrev>Tutorial: {ls} `elastic_integration filter`</titleabbrev>
<titleabbrev>Tutorial: {ls} `elastic_integration` filter</titleabbrev>


You can use {ls} to transform events collected by {agent} and paired with an {integrations-docs}[Elastic integration].
You get the benefits of Elastic integrations--such as the simplicity of ingesting data from a wide variety of data
sources and ensuring compliance with the {ecs-ref}/index.html[Elastic Common Schema (ECS)]--combined with the extra
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

-- isn't rendered properly?


* <<ea-integrations-fleet>>
* <<ea-integrations-create-policy>>
* <<ea-integrations-pipeline>>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't we need to setup LS instance before the LS policy? - I haven't fully followed the steps, not sure what experience I get when setting the policy first.

Copy link
Contributor

github-actions bot commented Dec 9, 2024

📃 DOCS PREVIEWhttps://logstash_bk_15932.docs-preview.app.elstc.co/diff

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Doc: Add filter-elastic_integration tutorial for extending integrations
5 participants