¿Cómo configurar systemd journal-remote?

17

¿Cómo configurar systemd journal-remote para escuchar en un puerto específico?

Todo lo que puedo encontrar son ejemplos de línea de comandos. Y en base a la página de manual, no parece haber ninguna opción en journal-remote.conf.

John Siu
fuente

Respuestas:

31

Al ver que ni siquiera hay un solo comentario, decidí continuar mi investigación y finalmente reconstruí la configuración.

SO: Ubuntu 16.04

systemd: 229-1ubuntu2

systemd-journal-remote: 229-1ubuntu2

Subir la configuración del servidor

Este es realmente simple, los ejemplos en línea son correctos y solo necesitan tocar un archivo de configuración.

Use el siguiente comando para instalar systemd-journal-remote

sudo apt-get install systemd-journal-remote

Editar /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

Para asegurarse de inicio automático de carga de diario en el arranque

sudo systemctl enable systemd-journal-upload.service

Reinicie la carga del diario después de la configuración.

sudo systemctl restart systemd-journal-upload.service

Si está utilizando http, puede hacer lo anterior y dejar las 3 líneas inferiores comentadas. Para el modo activo https, descomente y cree esos archivos cert.

La URL realmente dicta el protocolo de transferencia (http / https) y el puerto de destino a utilizar.

Además, si desea evitar la sobrescritura accidental mediante una futura actualización del paquete, puede crear un directorio /etc/systemd/journal-upload.conf.d y colocar su archivo de configuración, siempre que el archivo finalice con una extensión .conf.

Como notas al margen, estoy haciendo esto dentro de un contenedor LXC y parece que el servicio no usará / etc / hosts para la resolución dns, termino usando la dirección IP aquí. Entonces, si usa el nombre de host y ve un mensaje de error que indica que la carga del diario no puede alcanzar el objetivo, intente con la dirección IP.

Configuración del servidor receptor

El servidor receptor me da la mayor parte del problema cuando busco información de configuración. Y a diferencia del servidor de carga, la configuración está dispersa en este lado.

Use el siguiente comando para instalar systemd-journal-remote y habilitar el puerto de escucha

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

Hay dos formas, activa y pasiva, de configurar journal-remote. Estoy usando el modo pasivo aquí.

Número de puerto

El archivo de configuración para el puerto de escucha del diario es el /etc/systemd/system/sockets.target.wants/systemd-journal-remote.socketsiguiente. ListenStream es el número de puerto.

A diferencia del lado de carga, esta configuración no tiene nada que ver con qué protocolo (http / https) usar. Solo especifica el número de puerto de escucha.

[Unit]
Description=Journal Remote Sink Socket

[Socket]
ListenStream=19532

[Install]
WantedBy=sockets.target

Protocolo (http / https) y ubicación del diario / registro

Para cambiar el protocolo de la transferencia revista y la ubicación de almacenamiento, copiar /lib/systemd/system/systemd-journal-remote.serviceen /etc/systemd/system/, a continuación, editar /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

El --listen-http=-3especificar el diario entrante está utilizando http. Si desea usar https, cámbielo a --listen-https=-3.

--output=/var/log/journal/remote/especifique el sumidero (directorio de guardado) del diario entrante. Si no existe, créelo y cambie su propietario a systemd-journal-remote.

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

Reinicie journal-remote.socket después de la configuración.

sudo systemctl daemon-reload

¿Qué pasa con lo más obvio /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

Como no estoy usando https, no necesito cambiar nada.

John Siu
fuente
> Seeing that there is not even a single comment, Eso no es sorprendente, usted hizo su pregunta a las 22:12 UTC del viernes, para la mayoría de las personas que realmente responden preguntas aquí ese fin de semana.
user9517
@ Iin jajaja, no me di cuenta de eso. Estaba mirando el journal-remote.conf durante 3 noches antes de publicar la pregunta, así que puedes decir que estaba desesperado: p
John Siu
¿Tiene que limpiar / rotar los archivos que se generan con esta configuración?
Matt W
2
@MattW No es necesario el servidor de carga. Para el servidor receptor, la configuración de journald puede encargarse de la rotación.
John Siu
1
No debe editar los archivos en / lib / systemd / system. systemd le ofrece / etc / systemd / system / para unidades personalizadas. Simplemente copie y pegue el archivo en / lib / systemd / system en ese / etc / systemd / system y anulará el que está en lib.
nhooyr