La administración de logs en el mundo moderno es un gran desafío. Los logs, o la información que se capta en un momento dado sobre una acción ocurrida, son generados constantemente por las aplicaciones, los servidores y los dispositivos de red. Estos mensajes individuales sobre eventos o errores proporcionan más información y contexto cuando hay problemas, lo que (a simple vista) es increíblemente útil. Pero a medida que la infraestructura crece o la aplicación se vuelve más compleja, en algún momento podrías sentirte sepultado bajo una montaña de información interminable. 

El uso de una solución de administración de logs puede proporcionar la visibilidad de los datos de rendimiento que se necesita para reducir el tiempo medio de resolución (MTTR) y el tiempo medio de detección (MTTD). El monitoreo te puede ayudar a navegar por este flujo constante para que puedas pasar menos tiempo buscando y más tiempo resolviendo los problemas.  Pero, ¿cuál es la mejor manera de organizar esa montaña de datos para obtener la información crucial que se necesita cuando ocurre un problema? 

En esta publicación, hablaremos sobre los trucos y consejos para administrar y escalar la administración de logs. 

Factores que contribuyen a un alto volumen de logs

Primero, es importante comprender por qué hay un alto volumen de logs. Existen diversas razones, pero algunas de las más comunes son: 

  • La creciente complejidad de la arquitectura de tu aplicación: a medida que la arquitectura se vuelve más compleja, también aumentan las interacciones entre todos los componentes. Todas estas interacciones significan que habrá más eventos y que los clientes pueden encontrar más errores. Por ejemplo, tu aplicación podría usar cientos de microservicios que interactúan entre sí y generan grandes cantidades de datos de logs. 
  • No utilizar políticas de rotación de datos: no debería ser necesario y probablemente no es una buena idea que guardes los logs a largo plazo. En cambio, lo más conveniente es que los archives o los comprimas, o en algunos casos los borres. Quizás te convenga establecer reglas sobre el tamaño de los logs que vas a conservar, por cuánto tiempo los vas a guardar, cuándo se deben comprimir y cuándo se debe notificar a los interesados sobre la rotación. Si quieres más información sobre la rotación, puedes leer sobre el ciclo de vida de los logs de aplicaciones
  • La granularidad de la información en tus logs: si tus logs son muy detallados, es posible que tengas problemas al crearlos, transmitirlos y almacenarlos. Esto podría afectar los tiempos de respuesta de la aplicación o incluso el ancho de banda de la red, según la situación. Es importante determinar qué nivel de granularidad es útil y qué nivel de granularidad se convierte en una maraña inextricable. 

Es fundamental comprender las razones detrás del volumen de los logs, porque eso te puede ayudar a decidir cómo administralos. Si bien es posible que no tengas el poder para cambiar la complejidad de toda una aplicación, puedes tomar algunas medidas para reducir la complejidad de los logs en sí.

Mejores prácticas para administrar el volumen de logs

Entre todas las mejores prácticas, quizás la más importante para los logs sea reenviarlos a una ubicación central. Así podrás organizar, encontrar y utilizar la información proporcionada por los logs de la manera más eficaz. Eso lo puedes hacer con nuestra capacidad de monitoreo del rendimiento de aplicaciones (APM) y también con nuestro agente de infraestructura. Pero además de ubicar tus logs en un solo lugar, hay otras mejores prácticas que debes tener en cuenta: 

  • Estandarizar tus niveles de logs: considera estandarizar y definir los niveles de logs que usará tu organización. Por ejemplo, el agente de infraestructura de New Relic utiliza un subconjunto de los niveles de severidad de Syslog estándar de la industria para simplificar las categorías que tienes que organizar. 
  • Mantener un formato de logs uniforme: para los logs que tienen el mismo nivel, podría ser útil que definas un estándar de qué tipo de información vas a incluir y no incluir en los logs. Es mucho más fácil agregar y organizar la información cuando es uniforme que cuando es toda distinta. 
  • Incluir cosas de valor en los logs: todo lo que incluyas en los logs debe tener un propósito. Desde los eventos de usuarios hasta los errores de la aplicación, solo debes incluir la información que consideres valiosa, en lugar de indexar todo lo que se puede capturar en un log. Por ejemplo, los checks del estado de Kubernetes se hacen con frecuencia, pero no agregan mucho valor en general para comprender el panorama completo del sistema. 
  • Considerar el uso del logging estructurado: como los seres humanos pueden errar y asegurarse de que el texto en los logs sea relativamente uniforme puede ser problemático, considera usar el logging estructurado. Este método conceptualiza los logs no como un mensaje escrito sino como un registro de un evento y su contexto que pueden ser analizados por una máquina. Para obtener más detalles, puedes leer nuestra documentación sobre el análisis de logs o este blog sobre cómo configurar el logging estructurado para New Relic, escrito con Python

También ten en cuenta lo que necesitas conocer en un log durante el diagnóstico de un problema. Aunque ninguno de los siguientes puntos te ayudarán a generar menos logs, sí te deberían ayudar a generar logs más útiles: 

  • Utilizar un formato de logs analizable: una estructura de logs uniforme te puede ayudar a obtener información clave, lo que incluye elementos esenciales como la fecha, hora y descripción de un error en lugar de solo un código de estado. Si tienes un formato coherente, será más fácil hacer un agregado de estos detalles y analizarlos a profundidad más adelante. Si estás utilizando una herramienta que se encarga de hacer los análisis, considera usar una solución que te permita establecer reglas personalizadas para el análisis de logs, si las necesitas.  
  • Proporcionar contexto junto con los logs: utilizar una herramienta que proporcione información acerca de dónde se originó un error o problema junto con el log propiamente dicho puede ahorrarte tiempo. Obtén más información sobre cómo simplificar la resolución de problemas con los logs en contexto.
  • Asegurarse de poder filtrar los logs a tu manera: si bien puede parecer obvio que es necesario organizar los logs, deberías también pensar en cómo y cuándo deseas hacerlo. Es posible que puedas identificar problemas comunes o tipos de información que son relevantes en varias situaciones, no todas de emergencia. 
    Por ejemplo, podrías filtrar los logs si contienen datos confidenciales, como información que se tiene que tratar de acuerdo a requisitos de privacidad y seguridad específicos. El filtrado también es útil si necesitas auditar tus logs, ya que debería ser posible filtrar y excluir los eventos que no tengan que ver con lo que estás verificando.

Si deseas mejores prácticas adicionales para crear mejores logs, este blog describe algunas otras consideraciones para la administración de logs

Técnicas para administrar el volumen de logs

Poder administrar el volumen de logs es crítico para mantener el estado y el rendimiento de los sistemas de TI, y hay varias técnicas disponibles que podrías probar. 

  • Limitación de logs: puedes limitar el número de logs que se crean durante un periodo determinado. Esto te permitirá controlar el flujo de logs a un nivel más manejable mientras se sigue proporcionando información. Las instancias donde podrías utilizar esto incluyen las aplicaciones que generan una cantidad de logs superior a lo normal, como las herramientas de depuración. 
  • Muestreo de logs: de manera similar a la limitación de logs, el muestreo de logs reduce el número de logs que se capturan. El muestreo también se puede configurar para un periodo de tiempo en particular, pero los logs se capturan en función de los criterios que tú especificas o de manera aleatoria durante el periodo. La limitación, por el contrario, se detiene cuando se alcanza la cantidad de logs especificada para el periodo de tiempo. 
  • Ajuste dinámico del nivel de logs: esta técnica cambia el nivel de logs automáticamente en función de las necesidades del sistema. Si se cambia el nivel, los logs deberían generar más datos o menos datos. Por ejemplo, el nivel de DEPURACIÓN puede tener más detalles granulares que el de INFORMACIÓN.
  • Análisis de logs: puedes analizar tus logs para averiguar por qué se están generando tantos. Normalmente, descubrirás la fuente del volumen después de utilizar herramientas con aprendizaje automático que pueden normalizar los datos de log y buscar patrones. New Relic tiene un inicio rápido para el análisis de logs que puede ayudarte a comenzar de inmediato. 

Si bien es posible utilizar estas técnicas por sí solas, también puedes simplemente usar New Relic. Nuestra capacidad de administración de logs se escala automáticamente al volumen que se necesita. Los costos por datos y usuarios no aumentan, y los precios son predecibles.

Resumen

En esta publicación del blog, has aprendido algunas técnicas y mejores prácticas para administrar el volumen de logs de manera eficaz. Seguir algunas de estas prácticas puede ayudar a tu organización a ahorrar costos, mejorar el rendimiento del sistema y reducir el MTTD y el MTTR. Incluso puedes ahorrar tiempo al asegurar que el cumplimiento de la seguridad y la privacidad esté a la altura de las normas de la empresa. 

Con New Relic, puedes monitorear tus logs y distinguir las señales importantes de las que solo hacen ruido. Disfruta de una visibilidad más profunda, búsquedas casi instantáneas e información contextual y completa de logs para cualquier volumen de consultas. Y con nuestros precios sencillos y transparentes, las tarifas por datos y usuarios se mantienen iguales mientras tu negocio sigue escalando.