Skip to content

Add the logstash-output-http plugin to observabilitySRE container - #19465

Open
donoghuc wants to merge 1 commit into
elastic:mainfrom
donoghuc:add-http-output-to-observability-sre
Open

Add the logstash-output-http plugin to observabilitySRE container#19465
donoghuc wants to merge 1 commit into
elastic:mainfrom
donoghuc:add-http-output-to-observability-sre

Conversation

@donoghuc

Copy link
Copy Markdown
Member

Release notes

[rn:skip]

What does this PR do?

This commit adds the http output plugin which uses the same crypto providers as the elasticsearch output plugin which is already in use for this container.

This commit adds the http output plugin which uses the same crypto providers
as the elasticsearch output plugin which is already in use for this container.
Copilot AI lite review requested due to automatic review settings August 27, 2026 22:04
@github-actions

Copy link
Copy Markdown
Contributor

🤖 GitHub comments

Just comment with:

  • run docs-build : Re-trigger the docs validation. (use unformatted text in the comment!)
  • run exhaustive tests : Run the exhaustive tests Buildkite pipeline.

@donoghuc

Copy link
Copy Markdown
Member Author

run exhaustive tests

@mergify

mergify Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

This pull request does not have a backport label. Could you fix it @donoghuc? 🙏
To fixup this pull request, you need to add the backport labels for the needed
branches, such as:

  • backport-8./d is the label to automatically backport to the 8./d branch. /d is the digit.
  • If no backport is necessary, please add the backport-skip label

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR extends the observabilitySRE internal distribution to include the logstash-output-http plugin and adds acceptance coverage intended to validate FIPS vs non-FIPS TLS behavior when sending data through the HTTP output.

Changes:

  • Add logstash-output-http to the observabilitySRE plugin allow-list.
  • Add new acceptance test contexts for Logstash → HTTP output → Elasticsearch in both FIPS-compliant and non-FIPS TLS configurations.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

File Description
x-pack/distributions/internal/observabilitySRE/qa/acceptance/spec/acceptance_tests_spec.rb Adds new acceptance test contexts for HTTP output under FIPS and non-FIPS TLS configurations.
x-pack/distributions/internal/observabilitySRE/plugin-allow-list.txt Allows the logstash-output-http plugin in the observabilitySRE container.
Suppressed comments (1)

x-pack/distributions/internal/observabilitySRE/qa/acceptance/spec/acceptance_tests_spec.rb:101

  • This test references LOGSTASH_PIPELINE=logstash-to-http-weak.conf, but there is no corresponding pipeline file under x-pack/distributions/internal/observabilitySRE/qa/acceptance/docker/logstash/pipeline/. As written, the container will fail to start and the acceptance test will be invalid.
      work_dir = File.expand_path("../docker", __dir__)
      docker_compose_up({"LOGSTASH_PIPELINE" => "logstash-to-http-weak.conf"}, work_dir)
      wait_for_elasticsearch

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +69 to +71
work_dir = File.expand_path("../docker", __dir__)
docker_compose_up({"LOGSTASH_PIPELINE" => "logstash-to-http.conf"}, work_dir)
wait_for_elasticsearch
Comment on lines +88 to +92
wait_until(timeout: 30, message: "No documents in logstash-http-fips-test") do
response = es_request("/logstash-http-fips-test/_search", query)
result = JSON.parse(response.body)
response.code == "200" && result["hits"]["total"]["value"] > 0
end
Comment on lines +109 to +124
it "prevents data flow when using TLSv1.1 which is not FIPS-compliant" do
# Allow time for Logstash to attempt connections (and fail)
sleep 15

# Verify that no index has been created that would indicate successful data flow
response = es_request("/_cat/indices?v")
expect(response.body).not_to include("logstash-http-weak-ssl-test")

# Check logs for the specific BouncyCastle FIPS error we expect
logs = `docker logs fips_test_logstash 2>&1`

# Verify the logs contain the FIPS-mode TLS protocol error
expect(logs).to include("No usable protocols enabled")
expect(logs).to include("IllegalStateException")
expect(logs).to include("org.bouncycastle")
end
@infra-vault-gh-plugin-prod

Copy link
Copy Markdown

@donoghuc donoghuc added the backport-active-all Automated backport with mergify to all the active branches label Aug 27, 2026
@donoghuc

Copy link
Copy Markdown
Member Author

not quite sure what exhaustive tests didnt trigger... manually did it https://buildkite.com/elastic/logstash-exhaustive-tests-pipeline/builds/4265

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

Labels

backport-active-all Automated backport with mergify to all the active branches

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants