El registro y la salida de programas se entretejen en todo el entramado del sistema Linux. En Linux, los registros son una fuente vital de información sobre incidentes de seguridad, actividades de las aplicaciones y eventos del sistema. La gestión eficaz de los registros es crucial para solucionar problemas y garantizar el cumplimiento de la normativa. Este artículo explora la importancia de los registros y los principales tipos de registros antes de tratar algunas herramientas de línea de comandos útiles y otros consejos para ayudarte a gestionar los registros de Linux.
La importancia de registrar
Registrar proporciona una visión general de alto nivel de las aplicaciones y procesos que tu sistema ejecuta automáticamente en segundo plano. Estos registros proporcionan una pista de auditoría para descubrir lo que un sistema hace o deja de hacer y los aciertos y errores generados durante esas actividades. Muchas aplicaciones del ecosistema Linux producen una salida legible por los humanos y, si esa salida se redirige a un archivo de registro, es analizada automáticamente por las herramientas incluidas en un sistema Linux. Aunque no es necesario entrar en un registro para hacerlo, recuperar información histórica sin que esa información exista en un registro sería difícil, por no decir imposible.
Es importante reconocer uno de los beneficios significativos que esto facilita en el lugar de trabajo. Al integrar a la perfección la interfaz de usuario con la arquitectura subyacente del sistema se acorta el bucle de retroalimentación durante la fase de desarrollo y más allá. Después genera resultados valiosos que pueden transformarse en información práctica a lo largo del ciclo de vida de la aplicación.
Tipos de registros
- Registros del sistema: capturan información sobre el sistema operativo, como mensajes de inicio, eventos de hardware y actividades del kernel.
- Registros de aplicaciones: registran eventos específicos relacionados con el software, como mensajes de mantenimiento, errores, advertencias y actividades de los usuarios.
- Registros de seguridad: realizan un seguimiento de los eventos relacionados con la seguridad, incluidos los accesos no autorizados, los inicios de sesión regulares y las actividades del firewall.
Cualquiera de ellos puede servir como entrada o activador de aplicaciones o scripts, incluida la integración con la mayoría de software de supervisión serios.
Formatos de registro Syslog y journald
Los archivos de registro pueden almacenarse en diferentes formatos, dos de los más comunes son los registros del sistema en forma de diario (centralizados) y los registros en texto plano.
Tradicionalmente, el formato syslog se almacena en registros de texto plano, que son fáciles de leer y analizar. Este formato tiene ventajas e inconvenientes, al igual que journald,que almacena los registros en un formato binario legible por el comando journalctl.
La mayoría de las distribuciones modernas de Linux tienden a utilizar los registros journald de systemd al menos para sus aplicaciones principales del sistema. Los registros de diario de systemd proporcionan ventajas como instalaciones de registro centralizadas, supervisión de registro en tiempo real de datos de registro estructurados e indexados y cifrado de registro automático. En comparación, la naturaleza posiblemente menos restrictiva de los registros de texto plano tradicionales de Linux podría parecer más arriesgada a primera vista. Pero no te dejes engañar: los registros en texto plano siguen teniendo muchos usos.
La mayoría o todas las funciones integradas en systemd, como los sistemas de registro remoto, la monitorización centralizada, la rotación de registros y las copias de seguridad también las ofrecen otros paquetes estándar de Linux. Una desventaja de journald es su naturaleza monolítica comparativamente «pesada» frente a las herramientas de línea de comandos de Linux más avanzadas, utilizadas para interactuar con los archivos syslog, como grep, awk o tail. En comparación, cuando usas journald, obtienes todas sus características instaladas y funcionando: almacenamiento, encriptación, registro centralizado, rotación de registros y más – lo necesites o no.
Comparación de características: syslog vs. journald
Característica | syslog | journald |
Formato de almacenamiento | Archivos de texto sin formato | Formato binario con datos estructurados |
Compatibilidad | Ampliamente compatible con varias herramientas de gestión de registros | Requiere la integración de systemd para una funcionalidad completa |
Rotación de registros | Configuración manual de la rotación de registros | Rotación y compresión automáticas de los archivos de registro |
Gestión centralizada | Depende de servidores y herramientas de registro externos | Soporte integrado para registro centralizado |
Filtrado y análisis | Funciones avanzadas de filtrado y análisis a partir de la cadena de herramientas estándar de Linux | Filtrado y consulta avanzados con journalctl |
Eficiencia de almacenamiento | Puede consumir más espacio en disco debido al formato de texto plano | Almacenamiento más eficaz gracias al formato binario e indexado |
Control en tiempo real | Requiere herramientas externas o archivos de registro de seguimiento | Monitorización de registros en tiempo real integrada con journalctl |
Fiabilidad | Vulnerable a la corrupción o pérdida de archivos de registro en caso de bloqueos | Escrituras atómicas y estructura de archivos de diario resistente |
Cifrado | Pueden ser necesarios mecanismos externos de cifrado | Admite el cifrado de los datos de registro |
Filtrado y análisis de datos de registro: ejemplos útiles
Ejemplos de journald:
Ejemplo: journalctl -p err
Explicación: filtra los registros del diario para mostrar sólo las entradas con el nivel de gravedad «err» , que representa errores. Esto te permite centrarte en los mensajes de error e identificar rápidamente cualquier problema crítico en los registros del sistema.
Ejemplo: journalctl _SYSTEMD_UNIT=nginx.service
Explicación: filtra los registros del diario para mostrar las entradas relacionadas con nginx .service. Te ayuda a aislar los registros específicos de, por ejemplo, el servidor web Nginx, lo que facilita la resolución de problemas o la supervisión de tus actividades.
Ejemplo: journalctl –since «2023-07-21» –until «2023-07-22»
Explicación: filtra los registros del diario para mostrar las entradas entre las fechas especificadas, en este caso, del 21 de julio de 2023 al 22 de julio de 2023. Te permite centrarte en las entradas de registro dentro de un intervalo de tiempo específico, ayudando con la depuración o la investigación de eventos que ocurrieron durante ese período.
Ejemplos de syslog:
Ejemplo: grep -i «warning» syslog.log | grep -v «deprecated»
Explicación: realiza un proceso de filtrado en dos pasos. En primer lugar, utiliza grep con la opción-i para realizar una búsqueda que distingue entre mayúsculas y minúsculas de las líneas que coinciden con la cadena «warning» en syslog.log y, a continuación, canaliza la salida a otro comando grep con la opción -v, excluyendo las líneas que coinciden con la cadena «deprecated». Permite filtrar los mensajes de advertencia marcados específicamente como obsoletos.
Ejemplo: grep ‘string1|string2[|string3]’ logfile.log
Explicación: efectivamente una búsqueda OR utilizando grep. Usar comillas simples y colocar barras verticales entre ellas permite buscar varias cadenas con un solo comando grep.
Otros consejos sobre herramientas de registro
Aunque las herramientas estándar de Linux se emplean para el propio beneficio del sistema, también es útil emplear estas herramientas en otros lugares:
- logrotate: útil en la fase de desarrollo de la aplicación para ayudar a gestionar los registros de salida de depuración
- tail -f: el comando «tail» imprime las 10 últimas líneas de un archivo antes de salir. El modificador «-f» «sigue» al archivo de registro, busca nuevas entradas en el archivo de registro y se actualiza a medida que se añaden nuevas líneas.
- multitail: muestra varios archivos de registro en paneles en mosaico en tiempo real para que puedas supervisarlos simultáneamente.
En este artículo, hemos tratado varios aspectos de la importancia de los registros, hemos comparado distintos tipos de registros y hemos abordado casos de uso menos habituales para los registros en tu propio trabajo. También hemos explorado una serie de ejemplos de comandos y otras herramientas que contribuyen a una gestión eficaz de los registros de Linux. Utiliza los registros de Linux para realizar un seguimiento de la información de los sistemas operativos, las aplicaciones y los sistemas Linux y gestionar mejor tus endpoints de Linux. Conoce más acerca delsoftware de monitorización remota y gestión de endpoints de NinjaOne y descubre cómo puede ayudarte a gestionar más fácilmente tus dispositivos Linux distribuidos.