web-dev-qa-db-fra.com

Comment configurer systemd journal-remote?

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.

19
John Siu

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

Éditer /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.socket comme suit. 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 de 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.service en /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=-3 spécifiez que 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 de sauvegarde) 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

Qu'en est-il du 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.

35
John Siu