serialize net log asp logging elasticsearch logstash serilog

logging - net - ¿Qué fregadero Serilog usar para enviar a Logstash?



serilog log to file (3)

Comenzamos a utilizar Serilog en combinación con Elasticsearch, y es una forma muy eficiente de almacenar datos de registro de estructuras (y luego visualizarlos con herramientas como Kibana). Sin embargo, veo la ventaja de no escribir los datos de registro directamente en el back-end, sino que configura un agente de registro como Logstash que puede asumir la responsabilidad de agregar etiquetas a los mensajes de registro, seleccionar índices, etc. Con esta configuración, las aplicaciones no necesitarán tener conocimiento de log de distribución de datos.

Con Logstash en el medio, la pregunta es qué tipo de fregadero de Serilog es mejor usar para que Logstash pueda importar sus datos sin aplicar filtros avanzados e intensivos de CPU. He visto a Redis como un buen compañero de Logstash, pero Serilog no tiene un fregadero de Redis. ¿Alguna recomendación para el receptor Serilog sobre qué datos se pueden transferir fácilmente mediante Logstash a un índice de Elasticsearch?

Incluso hay un método para utilizar el sumidero de Elasticsearch primero y luego volver a Elasticsearch de nuevo después de algunos arreglos y aplicar etiquetas adicionales.


He creado un sumidero para Serilog que admite RabbitMQ, que se enlaza extremadamente bien con logstash, usando el plugin de entrada rabbitmq de logstash:

https://www.nuget.org/packages/Serilog.Sinks.RabbitMQ

Si ejecuta una instancia de RabbitMQ en su servidor de aplicaciones, puede iniciar sesión con Serilog en esta instancia de RabbitMQ utilizando el RabbitMQSink, pasando por alto los escenarios de segregación / caída de red.

Luego, Logstash recogerá los mensajes en la cola cuando se realice una copia de seguridad de la red.

Actualización: The Sink ahora está en V2.0 y es compatible con ASP.NET Core 1.0



Recibí una sugerencia de Nicholas Blumhardt (creador de Serilog) para usar RollingFileSink con JsonFormatter.