JOURNAL-REMOTE.CONF(5)

πŸŽ€ JOURNAL-REMOTE.CONF(5) β€” the tea on journal-remote.conf & journal-remote.conf.d πŸŽ€

okay bestie, so this is the manual page for journal-remote.conf / journal-remote.conf.d β€” the config files for the service that accepts remote journal uploads. yes THAT one. let's get into it πŸ’…


✨ NAME ✨

journal-remote.conf, journal-remote.conf.d β€” Configuration files for the service accepting remote journal uploads. it's giving "settings for the thing that catches journal data flying in from other machines" πŸ¦‹


🌸 SYNOPSIS 🌸

/etc/systemd/journal-remote.conf
/run/systemd/journal-remote.conf
/usr/local/lib/systemd/journal-remote.conf
/usr/lib/systemd/journal-remote.conf
/etc/systemd/journal-remote.conf.d/*.conf
/run/systemd/journal-remote.conf.d/*.conf
/usr/local/lib/systemd/journal-remote.conf.d/*.conf
/usr/lib/systemd/journal-remote.conf.d/*.conf

like, those are the spots. memorize them or don't, they're right there 😌


πŸ’– DESCRIPTION πŸ’–

These files configure various parameters of systemd-journal-remote.service(8). and if you're like "wait what even is the syntax" β€” go read systemd.syntax(7) for a general description of the syntax. it's all there fr fr 🫢


πŸ¦‹ CONFIGURATION DIRECTORIES AND PRECEDENCE πŸ¦‹

okay so this is the part everyone skips and then gets confused about, so pay attention bestie πŸ‘‘

The default configuration is set during compilation, so configuration is only needed when it is necessary to deviate from those defaults. (read: if the defaults already slay, you literally don't have to do anything πŸ’…)

The main configuration file is loaded from one of the listed directories in order of priority, and only the first file found is used:

  1. /etc/systemd/
  2. /run/systemd/
  3. /usr/local/lib/systemd/ [1]
  4. /usr/lib/systemd/

The vendor version of the file contains commented out entries showing the defaults as a guide to the administrator. so helpful, honestly 🌈

Local overrides can also be created by creating drop-ins, as described below. The main configuration file can also be edited for this purpose (or a copy in /etc/ if it is shipped under /usr/), however using drop-ins for local configuration is recommended over modifications to the main configuration file. like, don't touch the main one, that's not the vibe πŸ™ˆ


πŸŽ€ drop-ins, aka the moment

In addition to the main configuration file, drop-in configuration snippets are read from:

  • /usr/lib/systemd/*.conf.d/
  • /usr/local/lib/systemd/*.conf.d/
  • /etc/systemd/*.conf.d/

Those drop-ins have higher precedence and override the main configuration file. periodt.

Files in the *.conf.d/ configuration subdirectories are sorted by their filename in lexicographic order, regardless of in which of the subdirectories they reside. When multiple files specify the same option:

  • for options which accept just a single value, the entry in the file sorted last takes precedence πŸ”₯
  • for options which accept a list of values, entries are collected as they occur in the sorted files 🧺

πŸ’œ who gets to put files where

When packages need to customize the configuration, they can install drop-ins under /usr/. Files in /etc/ are reserved for the local administrator, who may use this logic to override the configuration files installed by vendor packages. Drop-ins have to be used to override package drop-ins, since the main configuration file has lower precedence. iykyk 😭

It is recommended to prefix all filenames in those subdirectories with a two-digit number and a dash, to simplify the ordering. This also defines a concept of drop-in priorities to allow OS vendors to ship drop-ins within a specific range lower than the range used by users. This should lower the risk of package drop-ins overriding accidentally drop-ins defined by users.

the sacred numbers bestie:

  • range 10-40 for drop-ins in /usr/ β€” vendor territory 🏭
  • range 60-90 for drop-ins in /etc/ and /run/ β€” your territory πŸ‘‘

so local and transient drop-ins take priority over drop-ins shipped by the OS vendor. as they should πŸ’…


🫢 how to ghost a vendor config file

To disable a configuration file supplied by the vendor, the recommended way is to place a symlink to /dev/null in the configuration directory in /etc/, with the same filename as the vendor configuration file. iconic. no notes. πŸ”₯


⭐ OPTIONS ⭐

All options are configured in the [Remote] section. yes, that exact section name, don't be creative πŸŽ€

  • Seal= β€” Periodically sign the data in the journal using Forward Secure Sealing. πŸ”
    • Added in version 229.
  • SplitMode= β€” One of "host" or "none".
    • Added in version 220.
  • ServerKeyFile= β€” SSL key in PEM format.
    • Added in version 220.
  • ServerCertificateFile= β€” SSL certificate in PEM format.
    • Added in version 220.
  • TrustedCertificateFile= β€” SSL CA certificate.
    • Added in version 220.
  • MaxUse=, KeepFree=, MaxFileSize=, MaxFiles= β€” These are analogous to SystemMaxUse=, SystemKeepFree=, SystemMaxFileSize= and SystemMaxFiles= in journald.conf(5). it's the same energy, different file πŸ’«
    • MaxUse= controls how much disk space the systemd-journal-remote may use up at most.
    • KeepFree= controls how much disk space systemd-journal-remote shall leave free for other uses.
    • systemd-journal-remote will respect both limits and use the smaller of the two values. 😌
    • MaxFiles= controls how many individual journal files to keep at most. Note that only archived files are deleted to reduce the number of files until this limit is reached; active files will stay around. This means that, in effect, there might still be more journal files around in total than this limit after a vacuuming operation is complete. so don't come for it when the count looks off πŸ™ˆ
    • Added in version 253.
  • Compression= β€” Configures acceptable compression algorithms to be announced through "Accept-Encoding" HTTP header. The header suggests systemd-journal-upload to compress data to be sent. πŸ“¦
    • Takes a space separated list of compression algorithms, or "no".
    • Supported algorithms are "zstd", "xz", or "lz4".
    • When a list of algorithms is specified, "Accept-Encoding" header will be constructed with priorities based on the order of the algorithms in the list.
    • When "no", "Accept-Encoding" header will not be sent.
    • This option can be specified multiple times. If an empty string is assigned, then all the previous assignments are cleared. (yes, it wipes the slate clean 🧼)
    • Defaults to unset and all supported compression algorithms will be listed in the header.
    • Example:
Compression=zstd lz4
  • Added in version 258.

πŸ‘‘ SEE ALSO πŸ‘‘

journald.conf(5), systemd(1), systemd-journal-remote.service(8), systemd-journald.service(8) β€” go read those next bestie, they're the whole friend group 🫢


πŸ’€ NOTES πŸ’€

  1. πŸ’£πŸ’₯🧨πŸ’₯πŸ’₯πŸ’£ Please note that those configuration files must be available at all times. If /usr/local/ is a separate partition, it may not be available during early boot, and must not be used for configuration. this one is serious, no cap, do NOT put your config there 🚨

and that's the whole page, you ate that πŸ’…βœ¨ this was systemd 261.3, JOURNAL-REMOTE.CONF(5) β€” go forth and configure responsibly, love u, bye πŸŽ€πŸ¦‹πŸ’–

πŸ“¦ where this page comes from