objectif
Transmettre les logs système vers une collecteur distant en TLS, avec queue persistante.
code minimal
sudo tee /etc/rsyslog.d/90-remote-tls.conf >/dev/null <<'EOF'
module(load="imuxsock")
module(load="imjournal")
module(load="omfwd")
module(load="gtls")
action(
type="omfwd"
target="logs.data.pm"
port="6514"
protocol="tcp"
StreamDriver="gtls"
StreamDriverMode="1"
StreamDriverAuthMode="x509/name"
StreamDriverPermittedPeers="logs.data.pm"
action.resumeRetryCount="-1"
queue.type="linkedList"
queue.filename="fwdqueue"
queue.maxdiskspace="200m"
queue.saveonshutdown="on"
)
EOF
sudo systemctl restart rsyslog
utilisation
# envoyer un test
logger -p user.info "test rsyslog tls"
# vérifier les files et erreurs
sudo rsyslogd -N1
variante(s) utile(s)
# forcer un CA custom
sudo mkdir -p /etc/rsyslog.d/certs
# placez votre CA dans /etc/rsyslog.d/certs/ca.crt puis:
sudo sed -i '1i$DefaultNetstreamDriverCAFile /etc/rsyslog.d/certs/ca.crt' /etc/rsyslog.d/90-remote-tls.conf
sudo systemctl restart rsyslog
notes
- ouvrez le port 6514 côté serveur (RFC5425). Vérifiez le nom cert (CN/SAN) avec
StreamDriverPermittedPeers. - la queue persistante évite la perte de logs en cas de panne réseau.
- adaptez modules d’entrée selon votre distro (imjournal vs imuxsock).