You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
2.9 KiB
Markdown
100 lines
2.9 KiB
Markdown
1 year ago
|
---
|
||
|
title: "Recolección centralizada de logs de sistema, mediante Journald"
|
||
|
date: 2023-01-15T23:39:03+01:00
|
||
|
draft: false
|
||
1 year ago
|
image: featured.png
|
||
|
categories:
|
||
|
- documentación
|
||
|
- Administración de Sistemas Operativos
|
||
|
tags:
|
||
|
- journald
|
||
|
- logs
|
||
|
- OpenStack
|
||
1 year ago
|
---
|
||
|
|
||
|
El escenario de OpenStack es el siguiente:
|
||
|
|
||
|
![escenario](https://i.imgur.com/I7aSQqg.png)
|
||
|
|
||
|
## Enunciado
|
||
|
|
||
|
Implementa en tu escenario de trabajo de Openstack, un sistema de recolección de log mediante journald. Para ello debes, implementar un sistema de recolección de log mediante el paquete systemd-journal-remote, o similares.
|
||
|
|
||
|
## Preparación
|
||
|
|
||
|
En cada instancia, voy a instalar el paquete `systemd-journal-remote`; en alfa, charlie y delta ejecuto el siguiente comando:
|
||
|
|
||
|
```bash
|
||
|
apt install systemd-journal-remote
|
||
|
```
|
||
|
|
||
|
en bravo, ejecuto el siguiente comando:
|
||
|
|
||
|
```bash
|
||
|
sudo dnf install systemd-journal-remote
|
||
|
```
|
||
|
|
||
|
## Configuración
|
||
|
|
||
|
He elegido el servidor alfa como servidor de logs, por lo que en él, voy a configurar el servicio. No voy a usar https ni autenticación, por lo que en el fichero `/lib/systemd/system/systemd-journal-remote.service` voy a modificar la siguientes línea:
|
||
|
|
||
|
```bash
|
||
|
ExecStart=/lib/systemd/systemd-journal-remote --listen-http=-3 --output=/var/log/journal/remote/
|
||
|
```
|
||
|
|
||
|
Ahora inicio el servicio y lo habilito para que se inicie en el arranque:
|
||
|
|
||
|
```bash
|
||
|
sudo systemctl enable --now systemd-journal-remote.socket
|
||
|
sudo systemctl enable --now systemd-journal-remote.service
|
||
|
|
||
|
sudo systemctl status systemd-journal-remote.socket
|
||
|
sudo systemctl status systemd-journal-remote.service
|
||
|
```
|
||
|
|
||
|
![status](https://i.imgur.com/nKnk0fe.png)
|
||
|
|
||
|
## Configuración de los clientes
|
||
|
|
||
|
Para ello, en cada uno crearé un usuario llamado `systemd-journal-upload` configurado de la siguiente manera:
|
||
|
|
||
|
**en charlie y delta**
|
||
|
|
||
|
```bash
|
||
|
sudo adduser --system --home /run/systemd --no-create-home --disabled-login --group systemd-journal-upload
|
||
|
```
|
||
|
|
||
|
**en bravo**
|
||
|
|
||
|
```bash
|
||
|
sudo adduser --system --home-dir /run/systemd --no-create-home --user-group systemd-journal-upload
|
||
|
```
|
||
|
|
||
|
Ahora modifico en el fichero `/etc/systemd/journal-upload.conf` la siguiente línea:
|
||
|
|
||
|
```bash
|
||
|
URL=http://alfa.roberto.gonzalonazareno.org:19532
|
||
|
```
|
||
|
|
||
|
Ahora reinicio el servicio en todas las máquinas:
|
||
|
|
||
|
```bash
|
||
|
sudo systemctl restart systemd-journal-upload.service
|
||
|
```
|
||
|
|
||
|
## Comprobación
|
||
|
|
||
|
En el servidor alfa, voy a comprobar que se están recibiendo los logs de los clientes
|
||
|
|
||
|
![logs](https://i.imgur.com/4HNPxgv.png)
|
||
|
|
||
|
Para ver los logs de los clientes, en el servidor alfa, ejecuto el siguiente comando (en este caso, el de delta):
|
||
|
|
||
|
```bash
|
||
|
sudo journalctl --file /var/log/journal/remote/remote-192.168.0.3.journal
|
||
|
```
|
||
|
|
||
|
![logs](https://i.imgur.com/qnJuI9g.png)
|
||
|
|
||
|
En un ejemplo anterior: [Ejemplo completo: Desplegando y accediendo a la aplicación Temperaturas](https://github.com/josedom24/curso_kubernetes_ies/blob/main/modulo6/temperaturas.md) habíamos desplegado una aplicación formada por dos microservicios que nos permitía visualizar las temperaturas de municipios.
|