Splunk HEC Improvements
Improved compatibility with Splunk HTTP Event Collector
We’re excited to share that we’ve made a few improvements to Vector’s support for Splunk HEC; Vector now supports Splunk HEC indexer acknowledgements and channel token passthrough routing.
Indexer Acknowledgements
With the new support for Splunk HEC indexer acknowledgement, Vector is now able
to provide higher guarantees that no data is lost when using the splunk_hec
source and sink.
As you may be aware, Splunk HEC does not guarantee that data is successfully written when it responds to an incoming request successfully. To confirm that data has been persisted, the indexer acknowledgements feature must be enabled. The status of sent events can then be queried via a separate endpoint.
splunk_hec
source acknowledgements
Previously, the splunk_hec
source did not support indexer
acknowledgements and so would provide weaker delivery guarantees and
would not work with Splunk senders that required them.
Now, you can configure the splunk_hec
source to use the indexer acknowledgements protocol by configuring:
acknowledgements = true
When enabled, responses to incoming requests will include an ID that can be used to query for acknowledgement status at the newly exposed /services/collector/ack
endpoint (learn more here). The acknowledgement status is wired into Vector’s
forthcoming end-to-end acknowledgement feature. This feature will require that
events be sent by sinks or persisted into disk buffers before sources will
acknowledge them.
splunk_hec
sink acknowledgements
Previously, the splunk_hec
sink simply treated successful HEC requests as the
events being acknowledged by the Spunk receiver and so Vector would drop them
from any buffers. Now, it is possible to configure the sink to wait until the
Splunk receiver acknowledges the events via the index
acknowledgements part of the HEC protocol.
This has defaulted to on to provide higher guarantees, but can be disabled to restore the previous behavior by configuring:
acknowledgements.indexer_acknowledgements_enabled = false
Passthrough Token Routing
Vector now also supports Splunk HEC token passthrough routing. When
store_hec_token
is enabled in a splunk_hec
source, tokens included in
requests to the source will be stored and used by downstream splunk_hec
sinks.
Any passed through token takes precedence over the default_token
configuration
set in the sink.
We hope that these improvements can make your experience using Vector with Splunk better! If you any feedback for us, let us know on our Discord chat or on Twitter.