11 colectores de Registro de código abierto para el registro centralizado

publicado en: Articles | 0

la diferencia entre los productos mediocres y los grandes productos es el registro. Aprende por qué es así y cómo unirlo todo.

al igual que la seguridad, el registro es otro componente clave de las aplicaciones web (o aplicaciones en general) que se deja de lado debido a los viejos hábitos y la incapacidad de ver hacia adelante. Lo que muchos ven como resmas inútiles de cinta digital son herramientas poderosas para mirar dentro de sus aplicaciones, corregir errores, mejorar las áreas débiles y deleitar a los clientes.,

antes de comenzar con el registro centralizado, primero veamos por qué el registro es tan importante.

dos tipos (niveles) de registro

Las computadoras son sistemas deterministas, excepto cuando no lo son.

como desarrollador profesional, he encontrado muchos casos en los que el comportamiento observado de la aplicación desconcertó a todos durante días, pero la clave siempre estaba en los registros. Cada pieza de software que ejecutamos produce (o al menos debería generar) registros, que nos dicen por lo que estaba pasando cuando ocurrió la situación problemática.,

ahora, el registro, como yo lo veo, es de dos tipos: registros generados automáticamente y registros generados por el programador. Tenga en cuenta que esto no es una diferenciación de libro de texto, y citarme en esta terminología le aterrizará en problemas.

la imagen de arriba muestra lo que puede denominarse como un registro generado automáticamente.

en este caso específico, es un sistema de WordPress que registra una condición inesperada (un aviso) cuando se ejecuta algún código PHP., Registros como estos se generan todo el tiempo sin descanso — por herramientas de base de datos como MySQL, servidores web como Apache, lenguajes de programación y entornos, dispositivos móviles, e incluso sistemas operativos.

Estos rara vez contienen mucho valor, y los programadores ni siquiera se molestan en investigarlos, excepto cuando algo sale mal. En esos momentos, Cavan profundamente en los registros, tratando de entender lo que salió mal.

pero los registros generados automáticamente pueden ayudar solo hasta cierto punto., Si varias personas tienen acceso de administrador a un sitio, por ejemplo, y uno de ellos elimina una información esencial, es imposible detectar al culpable con el uso de registros generados automáticamente. Desde la perspectiva de los sistemas Unidos como la aplicación, era solo otro día en el trabajo: alguien tenía la autoridad necesaria para ejecutar una tarea, y así el sistema la llevó a cabo.

lo que se necesita aquí es una capa adicional de registro explícito y extenso que crea senderos para el lado humano de las cosas., Estos son lo que yo llamo registros generados por programadores, y forman la columna vertebral de industrias sensibles como la banca. Este es un ejemplo de cómo podría ser un esquema de registro:

Source: joomlatools.com

el registro es poder

así que, dados estos dos tipos de registros en un sistema, Aquí está cómo puede aprovecharlos y aumentar el impacto.

mantenerse por delante del cliente

«Customer delight» ha llegado a ser conocido como un truco de marketing inútil, pero gracias al registro, se puede hacer muy real., Sé de productos digitales que monitorean sus registros como un halcón, y tan pronto como un cliente rompe algo en la página, pueden llamar al cliente y ofrecer ayuda.

solo piénsalo: a los segundos de recibir un feo error, recibe una llamada de la compañía que dice: «Oye, entiendo que estabas tratando de agregar este artículo al carrito, pero siguió muriendo. ¿Está bien que añada esta vez y complete el pedido por usted?»

Encantados cliente? ¡Ya lo creo!,

moral y productividad del equipo

Como dije antes, cuando los errores no se rastrean durante mucho tiempo, los desarrolladores de tu equipo se frustran y pierden más y más tiempo persiguiendo sus colas. Y aquí está la cosa con la depuración: requiere una mente fresca y curiosa desde el principio. Si un pensamiento WTF tanto como entra en su cerebro, todo el proceso va para un lanzamiento.

¿y qué hace que la depuración sea difícil? En mi experiencia, la falta de registro, o la falta de conocimiento de la tala., Para empezar, es posible que no se dé cuenta de que su base de datos favorita también es otra pieza de software que genera registros, o que no esté registrando extensamente en su aplicación (consulte registros generados por el programador más arriba).

recuerdo particularmente un caso en el que la aplicación no respondía, y nadie sabía por qué. Unos días más tarde, el culpable fue el límite de E/S del disco alcanzado debido al tráfico excesivo. Porque nadie se molestó en mirar allí, nadie podía averiguar por qué.,

Audit trails

¿Qué pasa si dos años después tu cliente dice que todos esos pedidos no fueron hechos por ellos sino por algún hacker?

¿Qué argumento tendría que aceptar o rechazar su solicitud? Si tiene un registro extenso (dirección IP, fecha y hora, tarjeta de crédito, etc.), entonces usted será capaz de analizar todo eso y llegar a una decisión. Bueno o malo, al menos tendrá alguna base objetiva, en lugar de asemejarse a un disparo en la oscuridad.

fuente: signature-reads.,com

lo mismo es cierto si se encuentra bajo alguna lente regulatoria o se le requiere someterse a una auditoría de terceros como parte de un nuevo proyecto importante. No tener un sistema de registro robusto le mostrará una mala luz.

mejorar los sistemas existentes

¿Cómo mejorar el sistema actual?

¿debería simplemente lanzar más hilos de RAM y CPU? ¿Qué pasa si tu aplicación es lenta a pesar de los recursos suficientes? ¿DÓNDE ESTÁ el cuello de botella? La mayoría de las veces, el registro es la respuesta.,

por ejemplo, todos los principales sistemas de bases de datos tienen una función para registrar consultas lentas.

fuente: speedawarenessmonth.com

si visita el registro de consultas lentas regularmente, conocerá qué operaciones y toma más tiempo, y por lo tanto descubrirá áreas pequeñas pero importantes que necesitan trabajo. A menudo, un pequeño cambio como este funciona mejor que duplicar la capacidad del hardware.

no hay que contar cuántas maneras te ayuda un buen sistema de registro., Tal vez el mejor argumento es que es una actividad automatizada que una vez configurada, no necesita ningún monitoreo y te salvará de la ruina algún día.

con eso fuera del camino, echemos un vistazo a algunos de los increíbles recopiladores de registros de código abierto (herramientas de Registro Unificado) que existen. En caso de que se lo pregunte, cubrimos las herramientas de registro comerciales basadas en la nube en una publicación anterior.

Graylog

Graylog es uno de los nombres líderes en la industria cuando se trata de capacidades de registro y visualización de nivel industrial., También es único en que analiza los registros recopilados en busca de signos de vulnerabilidades de seguridad y le notifica al instante.

Si bien Graylog es un sistema de registro centralizado, tiene la flexibilidad que necesita, lo que le permite personalizar alertas, paneles y más.

Greylog es de código abierto, pero hay un plan enterprise si sus necesidades son complejas.

con clientes como SAP, Cisco y LinkedIn en su lista, Graylog es una herramienta en la que puede confiar con los ojos cerrados.,

Logstash

Si eres fan o usuario de Elastic stack, vale la pena echarle un vistazo a Logstash (la pila ELK ya es una cosa, en caso de que no lo sepas). Al igual que otras herramientas de registro en esta lista, Logstash es totalmente de código abierto, lo que le permite la libertad de implementar y usar como desee.

pero no se deje engañar: Logstash es una nave nodriza con capacidades que superan con creces cualquier herramienta de registro humilde. Es capaz de recopilar grandes cantidades de datos de múltiples plataformas, le permite definir y ejecutar sus propias canalizaciones de Datos, dar sentido a los volcados de registros no estructurados y más.,

Por supuesto, la única limitación es que solo funciona con la suite elástica de productos, pero si está comenzando y busca escalar pronto, ¡Logstash es el camino a seguir!

Fluentd

entre las herramientas de registro centralizadas que funcionan como una capa intermedia para la ingestión de datos, Flutend es la primera entre iguales. Con una excelente biblioteca de plugins, Fluentd es capaz de capturar datos de prácticamente cualquier sistema de producción, amasarlos en la estructura deseada, construir una canalización personalizada y alimentarlos a su plataforma de análisis favorita, ya sea MongoDB o Elasticsearch.,

Fluentd está construido sobre Ruby, es completamente de código abierto, y es ampliamente popular debido a su flexibilidad y modularidad.

con grandes compañías como Microsoft, Atlassian y Twilio usando la plataforma, Fluentd no tiene nada que demostrar. 🙂

Flume

Si los conjuntos de datos realmente grandes son su desafío, y eventualmente desea alimentar todo en algo como Hadoop, Flume es una de las mejores opciones. Es un proyecto de código abierto «puro», en el sentido de que es mantenido por nuestra querida Fundación Apache, lo que significa que no hay un plan empresarial.,

esto puede o no ser lo que estás buscando exactamente. 🙂

fuente: beyondcoder.com

escrito en Java (que sigue sorprendiéndome cuando se trata de tecnología innovadora), el código fuente de Flume es completamente abierto. Flume es lo mejor para usted si está buscando una plataforma de ingesta de datos distribuida y tolerante a fallas para cosas de servicio pesado.,

Octopussy

le doy cero de diez para el nombre del producto, pero Octopussy puede ser una buena opción si sus necesidades son simples, y usted se está preguntando acerca de lo que todo el alboroto relacionado con tuberías, ingestión, agregación, etc., se trata de.

en mi opinión, Octopussy cubre las necesidades de la mayoría de los productos que hay (las estadísticas estimadas son inútiles, pero si tuviera que adivinar, diría que se ocupa del 80% de los casos de uso en el mundo real).

Octopussy no tiene una gran interfaz de usuario (ver aquí) en absoluto, pero lo compensa con respecto a la velocidad y la falta de hinchazón., La fuente está disponible en GitHub, como era de esperar, y creo que vale la pena una mirada seria.

Rsyslog

Rsyslog significa un sistema rápido para el procesamiento de Registros.

es una utilidad para sistemas operativos tipo Unix. En términos técnicos, es un enrutador de mensajes con entradas y salidas cargables dinámicamente y es altamente configurable.

Puede tomar entrada de múltiples fuentes de datos, transformarla y enviar la salida a varios destinos. Con Rsyslog, puede entregar 1 millón de mensajes por segundo a través de destinos locales.,

Rsyslog también proporciona un agente de Windows que trabaja muy de cerca con el agente rsyslog Linux. Se utiliza para la integración entre los dos entornos. Este agente de windows se utiliza para reenviar los registros de eventos de windows y configurar el servicio file monitor.

a continuación se muestran otras características ofrecidas por Rsyslog:

  • configuraciones flexibles
  • proporciona capacidades de subproceso múltiple
  • Protección de manipulación de archivos de Registro mediante firmas de registro y cifrado.,
  • soporta plataformas de Big Data
  • proporciona capacidades de filtrado basadas en contenido

LOGalyze

LOGalyze fue un producto comercial que se hizo recientemente de código abierto. Aunque no pude el proyecto en GitHub, hacen un instalador de Windows y todo el código fuente descargable.

si estás interesado en una comunidad, puedes encontrar los detalles de una lista de correo aquí.

LOGalyze es una oferta relativamente flexible y potente que funcionará muy bien para implementaciones de un solo sistema que buscan combinar el registro de fuentes conocidas como Postfix, Apache, etc.,, y producir la salida en CSV, PDF, HTML o formatos similares. Sí, no lo hace todo, pero como fue un producto comercial en un tiempo, lo hace bastante bien.

LogPacker

a la hora de elegir una herramienta para el trabajo, tengo dos criterios: tiene que estar enfocada, y tiene que estar respaldada por un modelo de negocio activo. El problema con el software de código abierto, en general, es que unos pocos meses / años más adelante, las posibilidades de estancamiento o muerte son altas. No hay recuento de cuántas herramientas de registro se lanzaron con gusto, solo que se encuentran ahora en el cementerio de GitHub.,

medido por este criterio, LogPacker es uno de mis favoritos.

como se puede ver en la captura de pantalla, LogPacker se trata de Registros, y nada más. Su impulso es definitivamente hacia sus ofertas en la nube, pero eres más que bienvenido a descargarlo e instalarlo en tus servidores (página de GitHub aquí).

La agrupación en clústeres y la agregación están disponibles para aquellos que desean usarla en una escala no trivial, y los planes empresariales están disponibles para aquellos que desean trabajar con la API o necesitan implementaciones más grandes., Un refrescante minimalista (centrado, aunque no pobre en características) asumir la gestión de la tala, en mi opinión!

Logwatch

estoy seguro de que hay algunos entre nosotros que no quieren que toda la ceremonia se asocie con un sistema de Registro «Unificado» y «centralizado». Su negocio proviene de servidores individuales, y están buscando algo rápido y eficiente para ver sus archivos de registro. Bueno, saluda a Logwatch.

Una vez instalado, LogWatch puede escanear los registros del sistema y crear un informe del tipo que desee., Sin embargo, es una pieza de software algo anticuada (léase «confiable»), y fue escrita en Perl. Por lo tanto, necesitará Perl 5.6+ en su servidor para ejecutarlo. No tengo ninguna captura de pantalla para compartir, ya que es una línea de comandos puramente, proceso demonizado.

Si eres un adicto a CLI y te encanta la forma de hacer las cosas de la vieja escuela, ¡te encantará Logwatch!

Syslog-ng

la herramienta Syslog-ng se desarrolló como una forma de procesar archivos de datos Syslog (un protocolo Cliente-Servidor establecido para el registro del sistema) en tiempo real., Con el tiempo, sin embargo, ha llegado a admitir otros formatos de datos: no estructurados, SQL y NoSQL. Cómo funciona el protocolo Syslog se resumen claramente en la siguiente ilustración.

syslog-ng es una herramienta de clasificación y recopilación de Registros confiable y de calidad de producción que fue escrita en C y ha sido un nombre establecido en la industria durante mucho tiempo. La mejor parte es su extensibilidad, lo que le permite escribir plugins en C, Python, Java, Lua o Perl.

lnav

abreviatura de (Log Navigator), lnav es una herramienta de terminal puro que funciona en una sola máquina, un solo directorio., Es para aquellos que tienen su registro unificado en un solo directorio o quieren filtrar y mostrar registros en tiempo real desde una sola fuente.

Si usted pensó que lnav no era nada más que glorificado tailf |grep usted podría estar equivocado. Hay varias características que harán que te enamores de él: vista de serie temporal, impresión bonita (para JSON y otros formatos), fuentes de registro codificadas por colores, filtros potentes, capacidad de comprender varios protocolos de registro y más.,

es solo que a veces quieres una capa de registro de cero problemas, cero configuración, tal vez temporal, y lnav encaja perfectamente!

Conclusión

Y ahí lo tienen!

fue una lista difícil de compilar, para ser franco, ya que el registro no es tan popular como, por ejemplo, la gestión de contenido, y todo mindshare parece haber sido agarrado por tres o cuatro herramientas. Aún así, las necesidades de cada uno son diferentes, y he tratado de cubrirlas ampliamente.

desde la tonta línea de comandos, herramientas sin configuración hasta los gigantes de datos en toda regla, ¡todo está aquí! ¿Me he perdido algo? ¡Por supuesto que lo hice!

Deja una respuesta

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