Parses and forwards Nginx syslog data to VictoriaLogs
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Katie Kloss 2730537755
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
use tokio::select instead of spawning tasks manually.
This actually awaits the result, so one task failing will end the entire program (and get restarted by Nomad, specifically).
2026-01-08 15:04:39 -05:00
src use tokio::select instead of spawning tasks manually. 2026-01-08 15:04:39 -05:00
.gitignore initial commit 2025-12-10 10:15:19 -05:00
.woodpecker.yml ci: add push step 2026-01-02 06:01:36 -05:00
Cargo.lock build: pare down tokio features. 2026-01-03 00:07:24 -05:00
Cargo.toml build: pare down tokio features. 2026-01-03 00:07:24 -05:00
README.md Update README.md 2025-12-17 03:50:46 +00:00

http-syslog-transformer

This is a tiny service that accepts UDP packets from the Nginx syslog logger, parses their data using the default Nginx "combined" format, and forwards the data as structured JSON to a VictoriaLogs instance's stream API.

The resulting logs have all the usual benefits of structured logging, like ease of querying and fidelity of query results.

For debugging, this command will send a UDP packet in the expected format to an instance of the service running locally:

echo '<190>Dec 10 09:57:07 hypnos.hq.kat5.dev nginx_kat5_dev: 10.10.1.54 - - [10/Dec/2025:09:57:07 -0500] "GET / HTTP/2.0" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0"' | nc -u 0.0.0.0 54321