5

Estoy hablando de una biblioteca que me permitiría registrar eventos de diferentes máquinas y alinear estos eventos en un eje de tiempo "global" con la suficiente precisión.¿Existe una biblioteca de registro distribuido de código abierto?

En realidad, estoy preguntando porque he escrito algo así en el curso de un proyecto de computación en clúster, lo encontré terriblemente útil, y me sorprendió que no pude encontrar ningún análogo.

Por lo tanto, el punto es si algo como esto existe (y yo contribuyo a ello) o si no existe nada (y mejor escribir un código abierto de código abierto de mi solución).

Estas son las características que cabría esperar de tal biblioteca:

  • Independencia en el reloj de desplazamiento entre diferentes máquinas
  • temporización de precisión del orden de milisegundos, por lo menos, de preferencia microsegundos
  • Escalabilidad a miles de procesos de registro concurrentes, con al menos varios megabytes de registros agregados por segundo
  • Operación en tiempo real (ti no quiero recoger 200 registros grandes de 200 máquinas y luego calcular compensaciones de reloj y fusionarlos - Quiero ver lo que sucede "en vivo", quizás con un pequeño rezago como 10s)
+0

La sincronización de tiempo y el registro generalmente se llevan a cabo en dos bibliotecas diferentes. Pero no veo de primera mano cuál es la diferencia entre su enfoque y hacerlo usando dos paquetes ... –

+0

Tener sincronización de tiempo y registro por dos bibliotecas diferentes es una solución. La diferencia es que si se hacen juntos, obtengo un registro sincronizado en tiempo real de todos los eventos en mi sistema; Quiero verlo casi en tiempo real, no obtenerlo por un montón de scripts aposteriori en los registros guardados. Intenté eso también, y la diferencia en productividad (análisis, experimentación) es dramática. – jkff

+0

¿Alguna vez se obtuvo esta fuente abierta? ¿O la solución era simplemente usar Scribe? –

Respuesta

1

La contribución de Facebook en este asunto se llama 'Scribe'.

Extracto:

Scribe es un servidor para la agregación de datos de registro de streaming. Está diseñado para escalar a una gran cantidad de nodos y ser robusto para fallas de redes y nodos. Hay un servidor de escritura ejecutándose en cada nodo del sistema, configurado para agregar mensajes y enviarlos a un servidor (o servidores) de escritura central en grupos más grandes.

...

Scribe se implementa como un servicio de segunda mano utilizando el servidor no bloqueante C++. La instalación en Facebook se ejecuta en miles de máquinas y entrega de manera confiable decenas de miles de millones de mensajes al día.

La API está basado en Thrift, por lo que tiene una buena cobertura de la plataforma, pero en caso de que usted está buscando una integración sencilla para Java es posible que desee echar un vistazo a Digg de log4j appender for Scribe.

+0

Sí, sé de Scribe, pero IIRC no proporciona un eje de tiempo global y, por lo tanto, es inútil para encontrar cuellos de botella de rendimiento distribuido. – jkff

+0

¿Por qué el proyecto github parece bastante solitario? –

1

Puede usar log4j/log4net apuntando a un daemon de syslog central. log4j tiene un built-in SyslogAppender, y en log4net puede hacerlo como se muestra en here. log4cpp docs here.

Existen implementaciones de Windows de Syslog si no tiene un sistema Unix a mano para esto.

+0

Esto simplemente no será 1) lo suficientemente rápido (1 solicitud RPC de red para enviar a syslog, 50000 eventos de registro por segundo = demasiadas solicitudes RPC por segundo) y 2) lo suficientemente preciso (las marcas de tiempo de llegada, con una carga tan pesada, difieren de las marcas de tiempo de generación en mucho más que unos pocos microsegundos). – jkff

+0

@jkff, ¿y quieres todo eso gratis? :-) Prueba Splunk si no puedes encontrarlo - http://www.splunk.com/ –

+0

Ya tengo todo eso, y es un código bastante pequeño. Me preguntaba si había inventado la rueda, y si alguien sería feliz si abrí mi fuente. – jkff

0

Utilice Chukwa, su código abierto y sistema de monitoreo de registros a gran escala

+0

¿Podría explicar las ventajas de Chuckwa? –

Cuestiones relacionadas