nixos/profiles/common/rsyslog.nix
2025-10-09 22:46:00 +02:00

59 lines
1.6 KiB
Nix

{ lib, ... }:
{
services.rsyslogd = {
enable = true;
defaultConfig = ''
# TODO: Vérifier s'il existe des services qui ne savent pas envoyer
# leurs logs sur journald (peut-être freeradius)
global(
workDirectory="/var/spool/rsyslog" # TODO: read the doc
preserveFQDN="on"
)
module(load="imjournal")
module(load="mmjsonparse")
module(load="omrelp")
module(
load="builtin:omfile"
template="RSYSLOG_FileFormat"
fileOwner="root"
fileGroup="root"
fileCreateMode="0640"
dirCreateMode="0755"
)
ruleset(name="sendLogsToRemote") {
action(
type="omrelp"
target="10.206.1.10"
port="20514"
queue.type="LinkedList"
queue.spoolDirectory="/var/spool/rsyslog"
queue.fileName="queue_1"
queue.saveOnShutdown="on"
queue.highWatermark="500"
queue.lowWatermark="100"
queue.checkpointInterval="200"
queue.syncqueuefiles="on"
queue.maxDiskSpace="500m"
action.resumeRetryCount="-1"
action.reportSuspension="on"
action.reportSuspensionContinuation="on"
)
}
# Send local logs to the remote collector
call sendLogsToRemote
'';
};
# Pas de risque de boucle dès lors qu'on n'injecte pas les logs
# dans journald.
systemd.services.syslog.serviceConfig.StandardOutput = lib.mkForce "journal";
}