Tecnología

Logs: qué son y por qué monitorizarlos

diciembre 9, 2020

Logs: qué son y por qué monitorizarlos

This post is also available in : Inglés

Qué es un log, para qué sirve y algunos de los principales tipos de log

En informática a nivel general hablar de “log” o “registro” es referirse a una información de más o menos bajo nivel reportada por el sistema operativo o una aplicación concreta que sirve para identificar qué está haciendo, incluyendo errores, problemas o avisos menores, y cuando ha sucedido eso, indicando la fecha, hora y segundo. En algunos casos se puede identificar el origen, el usuario, la dirección IP y otros campos interesantes desde el punto de vista de lo que ha sucedido.

Cada aplicación y cada sistema operativo pueden tener un formato diferente de log; de hecho, aunque existe un cierto estándar de unificación de registros de log -llamado genéricamente syslog-, la verdad es que la mayoría de aplicaciones siguen teniendo sus propios formatos.

Hay que tener en cuenta que el término “log” es tan genérico que no define siquiera cómo se almacena esa información o dónde lo hace. De hecho, los sistemas Microsoft Windows almacenan la información en lo que ellos llaman “eventos del sistema” y a los que se accede a través del visor de eventos del sistema. Cada evento del sistema en Windows tiene una serie de campos que definen el evento, su criticidad, el tipo de información, categoría, etc.

Este es el aspecto de un evento de Windows, lo que vendría a ser el “log” de Windows:

logs

Mientras que en Windows el registro de información o log del sistema y aplicaciones está casi siempre unificado en el visor de eventos del sistema, en sistemas Unix (e incluyo Linux en esta categoría) es mucho más caótico, y encontraremos que no existe un único log sino que hay varios y con diferentes formatos.

Este es un ejemplo de log Linux (messages):

Nov 17 04:19:52 cylon3 systemd: Stopping The Apache HTTP Server…
Nov 17 04:19:53 cylon3 systemd: Stopped The Apache HTTP Server.
Nov 17 04:19:54 cylon3 systemd: Starting The Apache HTTP Server…
Nov 17 04:19:54 cylon3 httpd: AH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using fe80::4637:e6ff:fedd:fa27. Set the ‘ServerName’ directive globally to suppress this message
Nov 17 04:19:54 cylon3 systemd: Started The Apache HTTP Server.
Nov 17 04:20:41 cylon3 yum[26424]: Installed: php-imap-7.3.24-1.el7.remi.x86_64
Nov 17 04:20:42 cylon3 yum[26424]: Installed: php-ldap-7.3.24-1.el7.remi.x86_64
Nov 17 04:20:44 cylon3 yum[26424]: Installed: php-mbstring-7.3.24-1.el7.remi.x86_64
Nov 17 04:20:52 cylon3 systemd: Stopping The Apache HTTP Server…
Nov 17 04:20:53 cylon3 systemd: Stopped The Apache HTTP Server.
Nov 17 04:20:53 cylon3 systemd: Starting The Apache HTTP Server…
Nov 17 04:20:53 cylon3 httpd: AH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using fe80::4637:e6ff:fedd:fa27. Set the ‘ServerName’ directive globally to suppress this message
Nov 17 04:20:53 cylon3 systemd: Started The Apache HTTP Server.
Nov 17 05:01:01 cylon3 systemd: Started Session 71 of user root.
Nov 17 06:01:01 cylon3 systemd: Started Session 72 of user root.
Nov 17 07:01:01 cylon3 systemd: Started Session 73 of user root.
Nov 17 07:20:32 cylon3 systemd: Starting Cleanup of Temporary Directories…

En sistemas Linux los logs se guardan en archivos ubicados en el directorio /var/log, aunque muchos programas manejan sus propios logs y los guardan en /var/log/. La ventaja de Linux es que la mayoría de logs son ficheros log de texto plano, accesibles y visibles desde cualquier herramienta de manipulación de textos, a diferencia de los eventos de Windows a los que solo se puede acceder a través del visor de eventos y/o API a bajo nivel.

Algunos de los logs más importantes en Linux y que deberían estar en todos los sistemas son los siguientes:

  • /var/log/messages – Aquí encontraremos los logs genéricos del sistema. Muchas aplicaciones vuelcan aquí sus registros a través del programa syslog que recoge eventos log de otras aplicaciones para meterlas en este fichero.
  • /var/log/secure – En este log se registran los login en el sistema, las veces que hacemos su, etc. Los intentos fallidos se registran en líneas con información del tipo invalid password o authentication failure.
  • /var/log/dmesg – En este archivo se almacena la información que genera el kernel durante el arranque del sistema y otros eventos que pueda generar en la ejecución. Suelen ser mensajes de bajo nivel no capturados por el subsistema syslog.

Algunos logs típicos de aplicaciones que nos podemos encontrar opcionalmente son los siguientes:

  • /var/log/maillog – Log de envío de correos, generalmente relacionado con el subsistema local de envío de correos (SMTP, Postfix, sendmail).
  • /var/log/pandora/pandora/pandora_agent.log – Log del agente de monitorización de Pandora FMS, que nos informa de cada ejecución y si ha tenido algún problema.
  • /var/log/httpd/access_log – Log de un servidor HTTP, como Apache.

¿Para qué podemos usar los logs?

Va a depender de qué necesites, pero es importante que sepas que los logs pueden ser esenciales tanto desde el punto de vista de la seguridad, como de análisis de uso del sistema, rendimiento o detección de fallos.

Los logs a veces son el «alimento preferido» de las técnicas de Machine Learning para detectar patrones que te ayuden a tomar decisiones.

Los logs son esenciales para la gestión y el control del acceso a los recursos; esto está relacionado con la auditoría de seguridad y derivados.

Los logs se pueden monitorizar y establecer reglas que permitan avisar cuando algo sucede. Es una de las cosas que hacen sistemas como Pandora FMS.

En suma, los logs pueden ayudarnos a entender cómo se usa nuestro sistema para prevenir fugas de información, así como comportamientos inadecuados que causen errores.

Existen distintas tecnologías que sirven para gestionar logs de manera centralizada; la más conocida mundialmente es Splunk, y otra de ellas es Pandora FMS para la recolección de logs, que permite almacenamiento, recolección y gestión de logs.

¿Qué es Amazon CloudWatch Logs?

Amazon CloudWatch Logs sirve para monitorizar y almacenar archivos de registro (logs) desde instancias Amazon Elastic Compute Cloud (Amazon EC2), AWS CloudTrail, Route 53 y otros orígenes de Amazon.

CloudWatch Logs le permite centralizar los registros de todos los sistemas, aplicaciones y servicios de AWS que utilice, en un único servicio de gran escalabilidad. Permite acceder a ellos y verlos para buscar patrones o códigos de error específicos en ellos, establecer filtros según el contenido de determinados campos o archivarlos de forma segura para analizarlos en el futuro.

CloudWatch Logs le permite ver todos sus registros independientemente de su origen, como un único flujo coherente de eventos ordenados por fecha y hora, así como consultarlos y ordenarlos en función de otras dimensiones, agruparlos por campos específicos, etc. También permite exportar esos datos para que otros sistemas (como Splunk o Pandora FMS) puedan gestionarlos externamente.


Leave a comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.