Syslog over HTTP with Vector
Use timberio/vector:0.46.1-debian. Set EPOK_INGEST_KEY in its process environment and make /var/lib/vector writable. Point your RFC5424 sender at the Vector TCP listener on port 1514 using newline-delimited messages. Vector forwards the original RFC5424 or RFC3164 envelope as HTTP text with X-API-Key, preserving the priority, app name and message for Epok to parse.
Configuration
data_dir: /var/lib/vector
sources:
syslog:
type: socket
address: 0.0.0.0:1514
mode: tcp
decoding:
codec: bytes
framing:
method: newline_delimited
sinks:
epok:
type: http
inputs: [syslog]
uri: https://ingest.getepok.dev/api/v1/syslog
method: post
encoding:
codec: text
framing:
method: newline_delimited
request:
headers:
Content-Type: text/plain
X-API-Key: ${EPOK_INGEST_KEY}
batch:
timeout_secs: 1
healthcheck:
enabled: false
Keep your ingest key private. Missing keys return 401; unknown keys return 403. A successful HTTP response alone is not proof of stored data.
Real-agent acceptance
The rig sends a unique RFC5424 message to the real Vector TCP source and requires the exact message and service p2-syslog in the seeded workspace and project. Real-agent acceptance is pending the coordinator run. The HTTP endpoint is not a raw TCP or UDP syslog listener.
From a source checkout with Docker Compose, run the isolated acceptance rig. It uses a fresh key and run marker, publishes no host ports, and removes its stack on exit. Every required stored-data check must pass.
scripts/p2_agent_acceptance.sh