Comment configurer systemd journal-remote?

17

Comment configurer systemd journal-remote pour écouter sur un port spécifique?

Tout ce que je peux trouver, ce sont des exemples de ligne de commande. Et sur la base de la page de manuel, il ne semble pas y avoir d'option dans journal-remote.conf.

John Siu
la source

Réponses:

31

Voyant qu'il n'y a même pas un seul commentaire, j'ai décidé de poursuivre mes recherches et finalement reconstitué la configuration.

Système d'exploitation: Ubuntu 16.04

systemd: 229-1ubuntu2

systemd-journal-remote: 229-1ubuntu2

Télécharger la configuration du serveur

Celui-ci est en fait simple, les exemples en ligne sont corrects et n'ont besoin de toucher qu'un seul fichier de configuration.

Utilisez la commande suivante pour installer systemd-journal-remote

sudo apt-get install systemd-journal-remote

Modifier /etc/systemd/journal-upload.conf.

/etc/systemd/journal-upload.conf

[Upload]
URL=http://10.0.0.1:19532
# ServerKeyFile=/etc/ssl/private/journal-upload.pem
# ServerCertificateFile=/etc/ssl/certs/journal-upload.pem
# TrustedCertificateFile=/etc/ssl/ca/trusted.pem

Pour vous assurer que le démarrage automatique du téléchargement du journal au démarrage

sudo systemctl enable systemd-journal-upload.service

Redémarrez le téléchargement du journal après la configuration.

sudo systemctl restart systemd-journal-upload.service

Si vous utilisez http, vous pouvez faire comme ci-dessus et laisser les 3 dernières lignes commentées. Pour le mode https actif, décommentez-les et créez ces fichiers cert.

L'URL dicte en fait le protocole de transfert (http / https) et le port de destination à utiliser.

De plus, si vous souhaitez éviter un écrasement accidentel par une future mise à jour du package, vous pouvez créer un répertoire /etc/systemd/journal-upload.conf.d et y placer votre fichier de configuration, tant que le fichier se termine par une extension .conf.

En remarque, je fais cela dans un conteneur LXC et semble que le service n'utilisera pas / etc / hosts pour la résolution DNS, je finis par utiliser l'adresse IP ici. Donc, si vous utilisez le nom d'hôte et voyez un message d'erreur indiquant que le téléchargement du journal ne peut pas atteindre la cible, essayez avec l'adresse IP.

Réception de la configuration du serveur

Le serveur de réception me donne la plupart des problèmes lors de la recherche d'informations de configuration. Et contrairement au serveur de téléchargement, la configuration est dispersée de ce côté.

Utilisez la commande suivante pour installer systemd-journal-remote et activer le port d'écoute

sudo apt-get install systemd-journal-remote
sudo systemctl enable systemd-journal-remote.socket

Il existe deux façons, active et passive, de configurer le journal à distance. J'utilise le mode passif ici.

Numéro de port

Le fichier de configuration du port d'écoute du journal est /etc/systemd/system/sockets.target.wants/systemd-journal-remote.socketle suivant. ListenStream est le numéro de port.

Contrairement au côté téléchargement, ce paramètre n'a rien à voir avec le protocole (http / https) à utiliser. Il spécifie uniquement le numéro du port d'écoute.

[Unit]
Description=Journal Remote Sink Socket

[Socket]
ListenStream=19532

[Install]
WantedBy=sockets.target

Protocole (http / https) et emplacement du journal / journal

Pour modifier le protocole de transfert du journal et l'emplacement d'enregistrement, copiez /lib/systemd/system/systemd-journal-remote.servicedans /etc/systemd/system/, puis modifiez /etc/systemd/system/systemd-journal-remote.service.

[Unit]
Description=Journal Remote Sink Service
Documentation=man:systemd-journal-remote(8) man:journal-remote.conf(5)
Requires=systemd-journal-remote.socket

[Service]
ExecStart=/etc/systemd/systemd-journal-remote \
          --listen-http=-3 \
          --output=/var/log/journal/remote/
User=systemd-journal-remote
Group=systemd-journal-remote
PrivateTmp=yes
PrivateDevices=yes
PrivateNetwork=yes
WatchdogSec=3min

[Install]
Also=systemd-journal-remote.socket

Le --listen-http=-3spécifier le journal entrant utilise http. Si vous souhaitez utiliser https, remplacez-le par --listen-https=-3.

--output=/var/log/journal/remote/spécifiez le récepteur (répertoire d'enregistrement) du journal entrant. S'il n'existe pas, créez-le et changez son propriétaire en systemd-journal-remote.

sudo mkdir /var/log/journal/remote
sudo chown systemd-journal-remote /var/log/journal/remote

Redémarrez journal-remote.socket après la configuration.

sudo systemctl daemon-reload

Et le plus évident /etc/systemd/journal-remote.conf?

[Remote]
# Seal=false
# SplitMode=host
# ServerKeyFile=/etc/ssl/private/journal-remote.pem
# ServerCertificateFile=/etc/ssl/certs/journal-remote.pem
# TrustedCertificateFile=/etc/ssl/ca/trusted.pem

Comme je n'utilise pas https, je n'ai rien à changer.

John Siu
la source
> Seeing that there is not even a single comment, Ce n'est pas surprenant, yoiu a posé votre question à 22: 12UTC un vendredi, pour la plupart des gens qui répondent aux questions ici, c'est le week-end.
user9517
@Iain lol, je ne l'ai pas remarqué. Je regardais le journal-remote.conf pendant 3 nuits avant de poster la question, vous pouvez donc dire que j'étais désespéré: p
John Siu
Devez-vous nettoyer / faire pivoter les fichiers générés avec cette configuration?
Matt W
2
@MattW Pas besoin de serveur de téléchargement. Pour le serveur de réception, la configuration de journald peut prendre en charge la rotation.
John Siu
1
Vous ne devez pas modifier les fichiers dans / lib / systemd / system. systemd vous donne / etc / systemd / system / pour les unités personnalisées. Copiez et collez simplement le fichier dans / lib / systemd / system dans ce / etc / systemd / system et il remplacera celui de lib.
nhooyr