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.confy/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_exporterrecolecta métricas similares a SAR (CPU, RAM, disco).Prometheusalmacena datos con historial.Grafanaofrece dashboards para detectar sobrecarga y cuellos de botella.
- Performance Co-Pilot (PCP) + pmchart
PCPes una herramienta avanzada para recolectar y graficar métricas en tiempo real.pmchartes 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
Glancesexporta métricas a bases de datos.Grafanapuede 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.useromem.physmemy elige el rango de fechas. - Consultar logs desde consola:
$ pmlogsummary /var/log/pcp/pmlogger/<host>/YYYYMMDD HH:MM HH:MMExportar 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_20250714Usa flechas y
t,c,m,dpara ver CPU, memoria, disco… - Exportar informe CSV:
$ atopsar -r /var/log/atop/atop_20250714 -A > informe.csvAbrir 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