Skip to content

Implement features for Keepalived integration #25589

Description

@nf-brentsaner

A note for the community

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment

Use Cases

When using e.g. KeepaliveD, HAProxy, etc. to load-balance/HA multiple Vector instances, it is desirable to implement health checks. This allows for dynamic balance membership or priority based on if Vector itself is actually running on a target address.

To accomplish this, there should be an option for:

  1. an option on http_server that will respond to a GET with a static body text/bytes and specified status code
  2. an option to filter out/not log bogus/improperly framed traffic from certain addresses/ranges/prefixes (e.g. for UDP socket, UDP syslog sources)

For no. 2, I've worked around it for now by configuring KeepaliveD to send a specific valid syslog message as its payload with certain identifiers unlikely to be encountered in real life and then filtering it out with a route.
However, given that there does not seem to be any way of avoiding a log entry when dropping an event or dealing with unexpected-formatting of received data (even if abort() is called, even with an explicitly or unspecified empty log message, and a bytes or vrl encoding is used), other balancing solutions aside from Keepalived may struggle with this.

For no. 1, I don't have any sort of ideal workaround. I suppose I could have the API listen on all addresses and do a GET to that but that's still pretty decoupled from an actual source that I'd want to verify is responding within a certain amount of time.

Attempted Solutions

(See above)

Proposal

(See above)

References

No response

Version

vector 0.56.0 (x86_64-unknown-linux-gnu 6817c02 2026-06-03 14:25:37.451398530)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels
    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions