A small, boring log shipper.

Fernwick tails files and journald, batches lines, and ships them to HTTP endpoints, Loki, or any S3-compatible bucket. One static binary, one TOML file, no agent fleet to babysit.

Get started v0.9.4 release notes
$ fernwick --config /etc/fernwick/fernwick.toml
level=info msg="loaded config" sources=3 sinks=1
level=info msg="tailing" path=/var/log/nginx/access.log offset=184213
level=info msg="flushed batch" sink=loki lines=512 bytes=88.1KiB took=41ms

Survives restarts

Read offsets are checkpointed to a tiny state file, so a restart picks up exactly where it left off. Rotated files are followed by inode.

Back-pressure, not data loss

When a sink is slow, Fernwick spills batches to a bounded on-disk buffer instead of dropping lines or eating all your RAM.

Cheap to run

Typically under 15 MB RSS and a fraction of a core while shipping a few thousand lines per second.