Los logs son el diario de vida de tu sistema Linux. Entender cómo leerlos, filtrarlos y analizarlos es crucial para diagnosticar problemas, rastrear actividades sospechosas y optimizar el rendimiento. En este artículo, te guiaremos a través de las herramientas esenciales y técnicas para dominar el arte del logging en Linux.
¿Dónde se esconden los logs?
En Linux, los logs se agrupan principalmente en dos ubicaciones:
- journalctl (con systemd): Almacenados en
/run/log/journal/
o/var/log/journal/
. - Logs tradicionales: Archivos de texto plano ubicados en
/var/log/
.
journalctl: El visor universal de logs
Si tu sistema usa systemd
, journalctl
es tu mejor amigo. Esta herramienta consulta el journal, un registro unificado de eventos del sistema.
Sintaxis básica
$ journalctl
$ journalctl -xe # Últimos errores detallados
Sintaxis avanzada
$ journalctl -u nginx # Logs del servicio nginx
$ journalctl --since "1 hour ago"
$ journalctl -p 3 # Solo prioridad: error
$ journalctl -b # Desde último arranque
Explorando /var/log/
El directorio /var/log/
alberga archivos de log tradicionales, cada uno con un propósito específico:
Archivo | Contenido principal |
---|---|
/var/log/syslog | Mensajes del sistema (Debian/Ubuntu) |
/var/log/messages | Eventos generales (Red Hat) |
/var/log/auth.log | Inicios de sesión y uso de sudo |
/var/log/kern.log | Eventos del kernel |
/var/log/dpkg.log | Instalaciones de paquetes |
/var/log/Xorg.0.log | Errores de la interfaz gráfica |
/var/log/faillog | Intentos fallidos de autenticación |
/var/log/wtmp , btmp | Conexiones e intentos fallidos |
Comandos para filtrar logs en /var/log/
$ grep "error" /var/log/syslog
$ tail -n 50 /var/log/auth.log
$ less /var/log/messages
$ awk '/ssh/' /var/log/auth.log
logrotate: Domando el crecimiento de los logs
logrotate
es una herramienta esencial para evitar que tus archivos de log consuman todo el espacio en disco. Rota, comprime y elimina logs antiguos según una configuración predefinida.
Configuración
- Directorios:
/etc/logrotate.conf
y/etc/logrotate.d/
Parámetros clave
weekly
: Rotación semanalrotate 4
: Guarda 4 versiones antiguascompress
: Comprime con gzipnotifempty
: No rota si está vacío
Forzar rotación manual
# logrotate -f /etc/logrotate.conf
rsyslog: El sistema tradicional de logging
rsyslog
es un sistema de logging versátil que permite redirigir, filtrar y enviar logs local o remotamente.
Configuración básica
module(load="imuxsock") # Recibe mensajes locales
module(load="imklog") # Mensajes del kernel
- Archivos de configuración:
/etc/rsyslog.conf
,/etc/rsyslog.d/*.conf
Auditoría de actividad
Ver quién usó sudo
$ grep "sudo" /var/log/auth.log
Ver últimos accesos
$ last
$ lastlog
Crear logs personalizados desde scripts
#!/bin/bash
echo "$(date): Inicio de respaldo" >> /var/log/milog.log
rsync -a /datos /backup
echo "$(date): Fin de respaldo" >> /var/log/milog.log
Auditoría avanzada con auditd, ausearch y auditctl
El paquete auditd
es un subsistema de auditoría de Linux que registra operaciones sensibles como cambios de archivos, ejecuciones y accesos fallidos.
auditctl: Definiendo las reglas
auditctl
establece qué eventos se deben registrar. Por ejemplo, para auditar la apertura del archivo /etc/passwd
:
# auditctl -w /etc/passwd -p wa -k passwd_watch
-w
: Archivo a monitorear-p
: Permisos (w=write, a=attr change, r=read, x=execute)-k
: Etiqueta para búsqueda posterior
Otras reglas útiles
# auditctl -a always,exit -F arch=b64 -S execve -k ejecuciones
# auditctl -a always,exit -F uid=1000 -F auid>=1000 -k usuario_luisgulo
ausearch: Buscando en los logs de auditoría
ausearch
filtra eventos registrados por auditd
.
Ejemplos
# ausearch -k passwd_watch
# ausearch -ts today -k ejecuciones
# ausearch -i --user luisgulo
-k
: Filtra por etiqueta-ts
: Fecha de inicio (today, now, 2024-10-25)-i
: Salida legible
Generar reportes automáticos con aureport
aureport
genera resúmenes de auditoría.
# aureport --summary
# aureport --login
# aureport --file --start today --end now
Programar con cron
Ejemplo de script /usr/local/bin/reporte_audit.sh
:
#!/bin/bash
FECHA=$(date +%Y-%m-%d)
aureport --summary > /var/log/audit/resumen_$FECHA.log
Agregar a cron diario:
$ crontab -e
0 1 * * * /usr/local/bin/reporte_audit.sh
Alternativas modernas a KSar para analizar logs de SAR
KSar era una herramienta gráfica para visualizar logs de sysstat/sar
. Como ya no se mantiene, existen alternativas más actuales:
- Grafana + Prometheus + node_exporter
node_exporter
recolecta métricas similares a SAR (CPU, RAM, disco).Prometheus
almacena datos con historial.Grafana
ofrece dashboards para detectar sobrecarga y cuellos de botella.
- Performance Co-Pilot (PCP) + pmchart
PCP
es una herramienta avanzada para recolectar y graficar métricas en tiempo real.pmchart
es un visor gráfico interactivo (similar a KSar).- Compatible con SAR y puede importar sus datos.
# apt install pcp pcp-gui
$ pmchart & - atop + atopsar
atop
: Monitorización en tiempo real y en registros.atopsar
: Genera informes históricos, similar a KSar.
$ atopsar -r /var/log/atop/atop_2025xxxx -A
- Glances con exportación a InfluxDB
Glances
exporta métricas a bases de datos.Grafana
puede visualizar esos datos.
Ejemplo completo: Monitorización con Performance Co-Pilot (PCP)
- Instalar PCP y visor gráfico:
# apt install pcp pcp-gui
# pacman -S pcp # En Arch - Activar recolección continua:
# systemctl enable pmcd
# systemctl start pmcd
# systemctl enable pmlogger
# systemctl start pmloggerEsto inicia la recolección en
/var/log/pcp/pmlogger/
. - Esperar varios días para recolectar datos (CPU, RAM, disco, red, etc.).
- Visualizar con
pmchart
(modo gráfico):$ pmchart &
Selecciona métricas como
kernel.all.cpu.user
omem.physmem
y elige el rango de fechas. - Consultar logs desde consola:
$ pmlogsummary /var/log/pcp/pmlogger/<host>/YYYYMMDD HH:MM HH:MM
Exportar métricas específicas:
$ pmlogextract -s "2 day ago" -e "now" /var/log/pcp/pmlogger/<host>/
Ejemplo completo: Monitorización con atop
- Instalar atop:
# apt install atop
# dnf install atop # En Fedora - Activar servicio automático:
# systemctl enable atop
# systemctl start atopEsto genera archivos como
/var/log/atop/atop_YYYYMMDD
(10 minutos de actividad por hora). - Visualizar registros anteriores:
$ atop -r /var/log/atop/atop_20250714
Usa flechas y
t
,c
,m
,d
para ver CPU, memoria, disco… - Exportar informe CSV:
$ atopsar -r /var/log/atop/atop_20250714 -A > informe.csv
Abrir con hojas de cálculo o importar a dashboards.
- Ver resumen filtrado por recurso:
$ atopsar -r /var/log/atop/atop_20250714 -c # CPU
$ atopsar -r /var/log/atop/atop_20250714 -m # Memoria
$ atopsar -r /var/log/atop/atop_20250714 -d # Disco
Tabla Comparativa: PCP vs atop
Para ayudarte a elegir la herramienta adecuada, aquí tienes una tabla comparativa:
Aspecto | PCP (Performance Co-Pilot) | atop |
---|---|---|
Tipos de métricas | CPU, RAM, disco, red, procesos, systemd, contenedores, etc. | CPU, RAM, disco, red, procesos, uso por proceso |
Visualización gráfica | pmchart , integración con Grafana | Limitada. Texto interactivo (atop), exportable a CSV |
Exportación de informes | pmlogsummary , pmlogextract , compatible con dashboards | atopsar , informes por día en CSV/terminal |
Historial largo (logs) | Guarda logs continuos (pmlogger ) por días o semanas | Archivos diarios rotativos /var/log/atop/atop_YYYYMMDD |
Interactividad | Limitada (selección en pmchart ) | Alta: navegación por recursos, filtrado por tipo/proceso |
Facilidad de instalación | Múltiples paquetes (pcp, pmchart , pmlogger ) | Único paquete (atop) fácil de activar como servicio |
Monitorización en tiempo real | Solo con herramientas complementarias | Interactivo con atop -r o en directo |
Integración externa | Grafana, Prometheus, otras fuentes de datos | Básica (CSV o manual, sin plugins oficiales) |
Recomendado para… | Auditoría histórica detallada, entornos grandes o distribuidos | Investigación directa de cuellos de botella por proceso |
Resumen rápido:
- Usa PCP si buscas recolectar y visualizar datos a largo plazo, integrarlo con dashboards modernos o crear reportes centralizados.
- Escoge atop si necesitas investigar problemas inmediatos, analizar procesos específicos y trabajar en terminal con alta interactividad.
Con este arsenal de herramientas y técnicas, estarás bien equipado para bucear en los logs de tu sistema Linux y desentrañar sus secretos. ¡Feliz debugging!
Fuente: Solo con Linux
Leave a Comment