104 stable releases
| new 1.204.0 | Feb 14, 2026 |
|---|---|
| 1.194.0 | Dec 31, 2025 |
| 1.186.0 | Oct 26, 2025 |
| 1.169.0 | Jul 19, 2025 |
| 0.0.0 | Jul 1, 2022 |
#145 in Unix APIs
20KB
189 lines
journal-forwarder
A simple script to forward journald logs over HTTP somewhat reliabily.
Configuration
All the configuration is passed in as environment variables. Either JF_URL or JF_URL_SRC is required.
JF_DEBUG
If set to a non-empty string batches are printed to stdout rather than being sent to the configured target.
JF_BATCH
The maximum number of entries to include in a batch. Entries are only sent in batches when logs are backed up. Once caught up entries are always sent live.
Defaults to 100.
JF_BATCH_SIZE
The maximum size of a batch in bytes. If a single entry is longer than this size it will still be sent but in its own "batch".
Defaults to 1 MiB.
JF_CURSOR
The path to a file where to store the cursor of previously transmitted logs. If this file does not exist it will be created and all logs will be uploaded.
Defaults to ./journal-forwarder.cursor.
JF_EXCLUDE_0
A sequence of field matches that are excluded from uploading. Each is given a sequential number starting with 0. Processing stops at the first missing number.
Each variable must be in the form FIELD=value. Exact matches for this pair are excluded. Any matching exclude is sufficient to prevent a log from being uploaded. Multiple excludes for the same field are possible.
Defaults to no excludes.
JF_METHOD
The HTTP method to use for sending logs.
Defaults to POST.
JF_URL or JF_URL_SRC
The URL where to upload the logs. JF_URL is the URL directly, if not set JF_URL_SRC is a path from where to read the URL.
This value is required.
Requirements
On nixos the following packages are required:
- coreutils
- curl
- gnused
- jq
- systemd
- utillinux (butilt with systemd support)
Questions
Open an issue so that I can answer and add docs.
Dependencies
~6–25MB
~319K SLoC