-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
[Meta] Logstash to Logstash [Bootstrap] #15163
Labels
Comments
roaksoax
changed the title
META: Logstash to Logstash [Bootstrap]
[Meta] Logstash to Logstash [Bootstrap]
Jul 11, 2023
9 tasks
yaauie
added a commit
to yaauie/logstash-integration-logstash
that referenced
this issue
Aug 8, 2023
As specified in elastic/logstash#15163 , this bootstrap creates a new `logstash` integration plugin containing a `logstash` input plugin that is capable of receiving events from the also-included `logstash` output plugin. The plugins are defined and specified in such a way that the protocol and encoding are both internal implementation details, which allows users to rely on a simple and consistent interface in their pipelines and for developers to be free to introduce new and better ways of transmitting those events in the future.
5 tasks
Time to live TTL may be a useful output setting if logstash(s) is behind a load balancer, which terminates the connection every X minutes. When this happens it can cause duplicates in elastic when Logstash re-tries the terminated request. |
Closing this issue as the work is now complete. If you would like to file enhancement request on the matter, please open new issues. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
User Needs:
See also: #14477
Task: API Boundary Bootstrap
Introduce a Logstash "integration" plugin that contains an output plugin and an input plugin whose minimal configuration allow transmission of events from one Logstash pipeline to another using a
host
,port
, and optional standard SSL settings.For example, transmitting events over plaintext would be as simple as defining an output in the upstream pipeline targeting a
host
andport
:And an accompanying input in the downstream pipeline that binds to the same port:
Details: Security
SSL/TLS communications must be configured using standardized SSL settings.
Details: Open-to-extend
The configuration of these plugins are intended to be an API boundary so that:
In the initial release of this plugin set, batches of events should be transmitted using newline-delimited JSON over HTTP(s) using
POST /events
requests, but these are internal implementation details. These details are not exposed to the user via plugin configuration options.The behavior of the initial release of a
logstash
input plugin is explicitly undefined when receiving bare TCP or TLS TCP connections, when receiving HTTP(s) requests with verbs other thanPOST
or to paths other than/events
, or with content-types other thanapplication/x-ndjson
.Bootstrap Requirements
host
/port
pairPOST /events
and aContent-Type: application/x-ndjson
headerInitial Extensions
hosts => ["12.34.56.78:1234", "12.34.56.79:1234"]
orhosts => ["12.34.56.78", "12.34.56.79"] port => 1234
(alternatives tohost => "12.34.56.78" port => 1234
) and should distribute events to the downstream hosts (naive whole-batch round-robin is ok at first, but then we could make it better)@metadata
Implementation Plan
Bootstrap
Advanced Features
Testing
The text was updated successfully, but these errors were encountered: