oglog/script/journal-upload.sh

58 lines
2.4 KiB
Bash

#!/bin/bash
set -e # Detener el script si ocurre un error
# Verificar que la variable de entorno IP_SERVER esté configurada
if [[ -z "$IP_SERVER" ]]; then
echo "ERROR: La variable de entorno IP_SERVER no está configurada."
echo "Por favor, exporta IP_SERVER antes de ejecutar este script."
exit 1
fi
echo "Actualizando paquetes e instalando dependencias..."
apt-get update
apt-get -y install \
prometheus-node-exporter \
systemd-journal-remote
echo "Configurando TLS y copiando certificados..."
# Copiar el certificado de la CA a /etc/ssl/certs/
cp CA/certs/ca.crt.pem /etc/ssl/certs/
# Crear un enlace simbólico para el certificado de la CA
ln -sf /etc/ssl/certs/ca.crt.pem /etc/ssl/certs/$(openssl x509 -in /etc/ssl/certs/ca.crt.pem -hash -noout).0
# Copiar los certificados del servidor
cp CA/certs/ogserver.mytld.crt.pem /etc/ssl/certs/
cp CA/private/ogserver.mytld.key.nopass.pem /etc/ssl/private/ogserver.mytld.key.pem
# Asegurar permisos en los archivos de certificados
chmod 600 /etc/ssl/private/ogserver.mytld.key.pem
chown root:root /etc/ssl/private/ogserver.mytld.key.pem
echo "Configurando systemd-journal-upload..."
# Modificar el archivo de unidad para que el servicio se ejecute como root
sed -i -e '/DynamicUser/s/.*/DynamicUser=no/' /usr/lib/systemd/system/systemd-journal-upload.service
sed -i -e '/User/ s/.*/User=root/' /usr/lib/systemd/system/systemd-journal-upload.service
# Recargar los servicios de systemd para aplicar los cambios
systemctl daemon-reload
# Configurar el archivo de configuración de systemd-journal-upload
sed -i -e '/URL/ s%.*%URL=https://oglog-jrem.mytld:19532%' /etc/systemd/journal-upload.conf
sed -i -e '/ServerKeyFile/ s%.*%ServerKeyFile=/etc/ssl/private/ogserver.mytld.key.pem%' /etc/systemd/journal-upload.conf
sed -i -e '/ServerCertificateFile/ s%.*%ServerCertificateFile=/etc/ssl/certs/ogserver.mytld.crt.pem%' /etc/systemd/journal-upload.conf
sed -i -e '/TrustedCertificateFile/s%.*%TrustedCertificateFile=/etc/ssl/certs/ca.crt.pem%' /etc/systemd/journal-upload.conf
# Habilitar e iniciar el servicio
echo "Habilitando y arrancando systemd-journal-upload..."
systemctl enable --now systemd-journal-upload
# Verificar el estado del servicio
systemctl status systemd-journal-upload --no-pager
echo "Configuración completada con éxito. Los logs se están enviando al servidor remoto."