Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Config file update #224

Merged
merged 11 commits into from
Jun 10, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 44 additions & 27 deletions log2ram.conf
Original file line number Diff line number Diff line change
@@ -1,49 +1,66 @@
# Configuration file for Log2Ram (https://github.com/azlux/log2ram) under MIT license.
# This configuration file is read by the log2ram service

# Size for the ram folder, it defines the size the log folder will reserve into the RAM.
# If it's not enough, log2ram will not be able to use ram. Check you /var/log size folder.
# The default is 40M and is basically enough for a lot of applications.
# You will need to increase it if you have a server and a lot of log for example.
# Specify the amount of RAM reserved for storing logs. This setting determines the maximum size of the RAM folder.
# Ensure 'SIZE=' is set larger than the current size of your /var/log directory to prevent startup failures.
# Also, configure logrotate to manage log growth and prevent the /var/log directory from exceeding this reserved size.
# The default setting of 128M suffices for many typical applications, but you may need to increase it for
# servers or systems that generate extensive logging.
SIZE=128M

# Select the log syncing method between the log directory on disk and in the RAM.
# The variable may be uncommented out, setting it to false, if "cp" is preferred over "rsync".
# Currently, this option needs to be unset or set to true for "rsync" to run,
# with "cp" available for fallback when "rsync" is missing.
# In all other cases, setting USE_RSYNC to anything other than true will default to "cp".
# Select the log syncing method between disk and RAM:
# - 'rsync' is the default unless 'USE_RSYNC' is set to 'false'.
# - If 'rsync' is unavailable, 'cp' is automatically used as a fallback.
# - Set 'USE_RSYNC' to 'false' to explicitly use 'cp'.
#USE_RSYNC=false

# If there are some errors with available RAM space, a system mail will be send by default (see next parameter)
# Change it to false and you will have only a log if there is no place on RAM anymore.
# By default, if there is insufficient RAM space, a system notification email is sent.
# Set this to 'false' to disable email notifications. (The error will still be logged locally).
#NOTIFICATION=true

# This is a one-line command for the error notification.
# By default, it's a email with the command `mail`, the body is passed in stdin.
# So you can set any command(like shoutrrr) or custom script for the error notification.
# Specify the command for sending error notifications.
# By default, it uses the `mail` command to send an email, with the message body provided via stdin.
# You can replace this with any command (such as 'shoutrrr') or a custom script for handling notifications.
#NOTIFICATION_COMMAND=mail -s "Log2Ram Error on $HOSTNAME"

# Variable for folders to put in RAM. You need to specify the real folder `/path/folder` , the `/path/hdd.folder` will
# be automatically created. Multiple path can be separeted by `;`. Do not add the final `/` !
# example : PATH_DISK="/var/log;/home/test/FolderInRam"
# Specify the directories to be stored in RAM. List each directory using its absolute path, e.g., `/path/folder`.
# Corresponding directories on the HDD, named `/path/hdd.folder`, will be automatically created for each listed path.
# Separate multiple paths with a semicolon `;` and do not include a trailing slash at the end of the paths.
# Example: PATH_DISK="/var/log;/home/test/FolderInRam"
PATH_DISK="/var/log"

# Should log2ram consider journald and do a log rotate before copying the log files back? Please note that for this
# rsync is mandatory. Also make sure that you have configured SystemMaxUse in journald.conf, because the size of this
# ram folder is will probably not be as large as journald will use by default
JOURNALD_AWARE=true

# **************** Zram backing conf *************************************************
# Set to 'true' to enable log rotation for journald logs before syncing.
# Note: 'rsync' must be used for this feature.
# Ensure 'SystemMaxUse' is configured in 'journald.conf'
# - (To limit journald’s disk usage to be smaller than the log2ram RAM allocation).
JOURNALD_AWARE=true
Copy link

@XhmikosR XhmikosR Jun 28, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't this block duplicated with line 35?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, thankyou for catching this! It has now been fixed in: this commit



# **************** Zram backing conf ****************

# ZL2R Zram Log 2 Ram enables a zram drive when ZL2R=true ZL2R=false is mem only tmpfs
# Set ZL2R=true to enable zram, providing compressed RAM storage for log2ram.
# Set ZL2R=false to use tmpfs, which provides uncompressed memory-only storage.
ZL2R=false
# COMP_ALG this is any compression algorithm listed in /proc/crypto
# lz4 is fastest with lightest load but deflate (zlib) and Zstandard (zstd) give far better compression ratios
# lzo is very close to lz4 and may with some binaries have better optimisation
# COMP_ALG=lz4 for speed or Zstd for compression, lzo or zlib if optimisation or availabilty is a problem

# Choose a compression algorithm from those listed in /proc/crypto.
# 'lz4' is the fastest, offering the lightest CPU load but lower compression ratios.
# 'deflate' (zlib) and 'Zstandard' (zstd) provide higher compression ratios but use more CPU.
# 'lzo' is similar to 'lz4' but may perform better with certain binaries due to optimizations.
# Set COMP_ALG to 'lz4' for speed, 'zstd' for better compression, or 'lzo' or 'zlib' if optimizations or availability are concerns.
COMP_ALG=lz4
# LOG_DISK_SIZE is the uncompressed disk size. Note zram uses about 0.1% of the size of the disk when not in use
# LOG_DISK_SIZE is expected compression ratio of alg chosen multiplied by log SIZE
# lzo/lz4=2.1:1 compression ratio zlib=2.7:1 zstandard=2.9:1
# Really a guestimate of a bit bigger than compression ratio whilst minimising 0.1% mem usage of disk size

# LOG_DISK_SIZE specifies the uncompressed zram disk size.
# (Sets the size of the zram disk that will be presented to the operating system).
# To estimate amount of RAM this will consume, divide LOG_DISK_SIZE by your chosen compression algorithm's ratio:
# - lzo/lz4 typically compresses at a ratio of 2.1:1
# - zlib compresses at about 2.7:1
# - zstandard (zstd) achieves around 2.9:1
# Example calculation using lz4:
# Given LOG_DISK_SIZE = 256M (which represents 256 Megabytes of uncompressed log data),
# the estimated zram RAM usage = 256 MB / 2.1 ≈ 122 MB of RAM.
LOG_DISK_SIZE=256M