Trabajo básico con journald

Journald es un sistema de registro utilizado en los sistemas operativos modernos basados en Linux para registrar eventos del sistema. Recopila información sobre el funcionamiento de diversos servicios, aplicaciones y procesos del sistema para ayudar a los administradores a supervisar el estado del sistema y diagnosticar errores.
A diferencia de los registros de texto estándar, journald almacena los datos en formato binario. Esto permite que los registros se almacenen de forma más compacta y se gestionen de manera más eficiente, pero al mismo tiempo, no puedes abrir estos registros directamente en un editor de texto. Se requieren herramientas especiales para verlos y analizarlos.
En este artículo, veremos cómo ver los registros mantenidos por journald y cómo limpiarlos para ahorrar espacio en disco.
Cómo ver registros de journal
Para leer registros, usa el comando journalctl:
- Todos los registros:
sudo journalctl
- Registros desde el último reinicio:
sudo journalctl -b
- Registros de un servicio específico:
sudo journalctl -u nginx
- Registros de un día específico:
sudo journalctl --since "2024-11-01" --until "2024-11-02"
- Ver las últimas n entradas (por ejemplo, las últimas 100):
sudo journalctl -n 100
- Filtrar por nivel de prioridad (por ejemplo, para errores):
sudo journalctl -p err
- Ver las entradas del journal en orden inverso, comenzando por las más recientes (útil cuando necesitas ver las entradas de registro más recientes rápidamente):
sudo journalctl -r
- Ver las entradas del journal en tiempo real (similar a tail -f):
sudo journalctl -f
Puedes combinar estas opciones. Por ejemplo, para mostrar todos los errores del servicio nginx el 10 de noviembre de 2024, mostrando solo las últimas 10 entradas:
sudo journalctl -u nginx --since "2024-11-10" --until "2024-11-10 23:59:59" -n 10
Cómo limpiar el Journal
Si los registros ocupan demasiado espacio, puedes usar los siguientes comandos para limpiarlos:
- Limpiar registros antiguos (por ejemplo, más antiguos de 7 días):
sudo journalctl --vacuum-time=7d
- Limpiar registros que excedan un tamaño especificado (por ejemplo, 1 GB):
sudo journalctl --vacuum-size=1G
- Limpiar completamente todos los registros:
sudo journalctl --vacuum-files=0
Cómo reducir el tamaño del Journal
Por defecto, journald puede ocupar mucho espacio en disco si los registros no están limitados. Para establecer un tamaño máximo para los registros, abre el archivo de configuración journald.conf:
sudo nano /etc/systemd/journald.conf
En este archivo, puedes configurar los siguientes parámetros:
- SystemMaxUse — el tamaño máximo para todos los journals:
SystemMaxUse=1G
- RuntimeMaxUse — el tamaño máximo para los journals temporales:
RuntimeMaxUse=500M
- MaxRetentionSec — el tiempo máximo para retener los registros:
MaxRetentionSec=1month
Establece valores adecuados para tu sistema y necesidades, luego guarda el archivo usando Ctrl + O y sal del editor usando Ctrl + X.
Para aplicar los cambios, reinicia el servicio journald:
sudo systemctl restart systemd-journald
También puedes habilitar el registro en RAM o incluso deshabilitarlo por completo. Ninguna de estas opciones se recomienda en un entorno de producción, ya que el journal contiene información de diagnóstico importante. Su precisión y relevancia son cruciales para el diagnóstico adecuado de los procesos en tu servidor.
Si aún deseas activar el almacenamiento del journal en RAM, establece el siguiente valor en /etc/systemd/journald.conf:
Storage=volatile
Para deshabilitar completamente el registro, especifica:
Storage=none