Introducci贸n
Hola Fronters 馃憢
Bienvenidos a la quinta entrega de nuestra serie sobre monitorizaci贸n de recursos de hardware en Linux. Hasta ahora hemos cubierto CPU, memoria RAM, red, disco y rendimiento general. Pero hay una fuente de informaci贸n que ning煤n sysadmin puede ignorar: los logs del sistema.
Los logs son el diario de a bordo de tu servidor. Cada proceso, cada servicio, cada intento de conexi贸n, cada error y cada advertencia quedan registrados en alg煤n lado. Saber leerlos, filtrarlos y configurarlos es lo que separa a un administrador reactivo de uno proactivo.
En este art铆culo vamos a profundizar en journalctl, los archivos cl谩sicos de /var/log/, dmesg, logrotate, rsyslog, logwatch y c贸mo analizar logs de autenticaci贸n, sistema y kernel.
1. systemd-journald y journalctl
En las distribuciones modernas con systemd, el sistema de logs por defecto es journald. Toda la informaci贸n estructurada de servicios, kernel y aplicaciones se almacena en el journal binario.
Comandos b谩sicos de journalctl
# Ver todos los logs desde el arranque actual
journalctl -b
# Ver logs de un servicio espec铆fico
journalctl -u nginx.service
# Ver logs en tiempo real (como tail -f)
journalctl -f
# 脷ltimos 50 mensajes
journalctl -n 50
# Logs de las 煤ltimas 2 horas
journalctl --since "2 hours ago"
# Logs de un rango de fechas
journalctl --since "2025-05-01" --until "2025-05-15"
# Logs por prioridad (0=emerg, 1=alert, 2=crit, 3=err)
journalctl -p err -b
# Ver logs en formato JSON (ideal para parsing)
journalctl -o json-pretty
# Logs de un PID espec铆fico
journalctl _PID=1234
Configuraci贸n de journald
El archivo de configuraci贸n principal es /etc/systemd/journald.conf. Algunos par谩metros clave:
[Journal]
Storage=persistent # Guarda logs en disco, no solo en RAM
Compress=yes # Comprime logs antiguos
SystemMaxUse=500M # M谩ximo espacio en disco para logs
SystemMaxFileSize=100M # Tama帽o m谩ximo por archivo
MaxRetentionSec=2week # Retenci贸n m谩xima de 2 semanas
Despu茅s de modificar: sudo systemctl restart systemd-journald
2. Los archivos cl谩sicos de /var/log/
Aunque systemd es el est谩ndar moderno, los archivos de texto plano en /var/log/ siguen siendo fundamentales, especialmente en servidores sin systemd o con configuraciones h铆bridas.
# Log de autenticaci贸n (inicios de sesi贸n, sudo, SSH)
/var/log/auth.log # Debian/Ubuntu
/var/log/secure # RHEL/CentOS
# Log del sistema (general)
/var/log/syslog # Debian/Ubuntu
/var/log/messages # RHEL/CentOS
# Log del kernel
/var/log/kern.log
# Logs de aplicaciones
/var/log/apache2/access.log
/var/log/nginx/access.log
/var/log/mysql/error.log
Analizar auth.log como un profesional
# Intentos de SSH fallidos
grep "Failed password" /var/log/auth.log
# Contar intentos fallidos por IP
grep "Failed password" /var/log/auth.log | grep -oP 'from \K[0-9.]+' | sort | uniq -c | sort -rn
# Inicios de sesi贸n exitosos
grep "Accepted password" /var/log/auth.log
# Uso de sudo
grep "sudo" /var/log/auth.log | grep "COMMAND"
# Intentos de su
grep "FAILED SU" /var/log/auth.log
3. dmesg: Los mensajes del kernel
dmesg muestra los mensajes del buffer del kernel, ideal para diagnosticar problemas de hardware, drivers, discos y dispositivos USB.
# Ver todos los mensajes del kernel
dmesg
# Seguir mensajes en tiempo real
dmesg -w
# Filtrar por nivel de severidad
dmesg --level=err,warn
# Buscar errores de disco
dmesg | grep -i "error\|fail\|disk"
# Buscar dispositivos USB
dmesg | grep -i usb
# Ver informaci贸n de memoria del kernel
dmesg | grep -i memory
# Limpiar el buffer (煤til antes de pruebas)
sudo dmesg -c
4. logrotate: Rotaci贸n inteligente de logs
Los logs crecen sin control si no los rotamos. logrotate se encarga de comprimir, rotar y eliminar logs antiguos autom谩ticamente.
Configuraci贸n global: /etc/logrotate.conf
# Rotaci贸n semanal
weekly
# Conservar 4 rotaciones
rotate 4
# Crear nuevo archivo vac铆o despu茅s de rotar
create
# Comprimir rotaciones viejas
compress
# No perder datos si el log est谩 ausente
missingok
Configuraciones por servicio en /etc/logrotate.d/:
# /etc/logrotate.d/nginx
/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 640 www-data adm
sharedscripts
postrotate
[ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
endscript
}
5. rsyslog: El motor de logs cl谩sico
rsyslog es el servicio tradicional de logging, reemplazado en parte por journald pero a煤n muy presente. Su configuraci贸n est谩 en /etc/rsyslog.conf y /etc/rsyslog.d/.
# Enviar logs de autenticaci贸n a un archivo separado
auth,authpriv.* /var/log/auth.log
# Enviar todos los logs del sistema a un archivo
*.*;auth,authpriv.none -/var/log/syslog
# Enviar logs del kernel
kern.* -/var/log/kern.log
# Enviar logs cr铆ticos por email (requiere mail)
*.emerg :omusrmsg:*
Reenviar logs a un servidor central
# En el cliente (/etc/rsyslog.d/remote.conf)
*.* @192.168.1.100:514 # UDP
*.* @@192.168.1.100:514 # TCP
6. logwatch: Reportes autom谩ticos de logs
logwatch analiza los logs y genera reportes resumidos por correo o consola. Ideal para revisi贸n diaria.
# Reporte de todo el d铆a de hoy
logwatch --detail High --range today
# Reporte de ayer
logwatch --detail Med --range yesterday
# Reporte de los 煤ltimos 7 d铆as
logwatch --range 'between -7 days and today'
# Filtrar solo servicios SSH
logwatch --service sshd --range today
# Enviar por correo
logwatch --mailto admin@example.com --range today
7. Filtrado avanzado con combinaciones
La verdadera potencia est谩 en combinar herramientas:
# Buscar errores de disco en las 煤ltimas 24h
journalctl --since "24 hours ago" -p err | grep -i "disk\|i/o\|ata"
# Correlacionar fecha/hora entre auth.log y kern.log
grep "May 15 14:3[0-9]" /var/log/auth.log | tail -20
dmesg -T | grep "May 15 14:3[0-9]"
# Alertas de recursos desde journalctl
journalctl -p warning -b --no-pager | grep -i "memory\|cpu\|disk"
# Monitorear logs en tiempo real con alertas visuales
journalctl -f | grep --color=always -i "error\|fail\|critical\|oom"
Conclusi贸n
Los logs son la memoria del sistema. Saber leer journalctl, navegar /var/log/, interpretar dmesg, configurar logrotate y rsyslog, y usar logwatch para reportes autom谩ticos te da una ventaja enorme como administrador.
No esperes a que algo falle para revisar los logs. Implementa revisiones peri贸dicas, configura rotaciones y alertas, y convi茅rtete en un sysadmin proactivo.
En el pr贸ximo y 煤ltimo art铆culo de la serie, veremos c贸mo generar trazabilidad de eventos y detecci贸n de posibles problemas, correlacionando todo lo que hemos aprendido. 隆No te lo pierdas! 馃殌