es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Enviar registros de envío desde una carpeta compartida de red utilizando Filebeat en Windows.

La declaración del problema: Tengo una aplicación que se ejecuta en Windows. Deseo enviar archivos de registro desde esta aplicación a ELK a través de Kafka.

El desafío: Esta aplicación escribe muchos metadatos de proceso en el disco en un directorio específico. Esta información es importante para la recuperación de la aplicación y, por lo tanto, se almacena en una red para admitir DR. La aplicación también escribe registros en la misma ubicación de directorio y no tenemos la capacidad de separar los registros de los demás metadatos del proceso. Como resultado, los registros se escriben en una red compartida.

Deseo enviar los registros a Elastic. Normalmente usamos Beats para hacer esto. Sin embargo, Filebeat no recomienda enviar registros desde el almacenamiento de red en Windows. Ref: https://www.elastic.co/guide/en/beats/filebeat/7.11/filebeat-network-volumes.html. También he leído varios problemas de git y publicaciones en SO donde la gente se ha quejado de que Filbeat deja de cosechar en la rotación.

Dado que esto es una red compartida, tampoco pude crear un enlace simbólico o un enlace de Junction para engañar a mi aplicación para que escriba los registros en el disco duro.

¿Alguien ha resuelto este problema?

P.S.: También leí en algún lugar que logstash tiene un mejor manejo de archivos en una red compartida. Sin embargo, no necesito logstash y me gustaría evitarlo si es posible. Además, la documentación oficial de logstash menciona que la lectura de archivos desde NFS se prueba solo ocasionalmente. No está completamente probado.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como solución temporal para la limitación de Filebeat en el envío de registros desde el almacenamiento de red en Windows, una posible solución puede ser utilizar Logstash. Logstash tiene un manejo comparativamente mejor de los archivos en compartir archivos de red, aunque su documentación oficial menciona que la lectura de archivos desde NFS solo se prueba ocasionalmente y no se prueba exhaustivamente.

    Para implementar esta solución, puede configurar Logstash para monitorear el directorio de compartir archivos de red donde la aplicación escribe los registros y procesar los registros antes de enviarlos a Kafka y luego a Elastic. Esto se puede hacer usando el plugin de entrada de archivo de Logstash, donde puede especificar el directorio de compartir archivos de red como fuente.

    Sin embargo, es importante tener en cuenta que usar Logstash en lugar de Filebeat puede agregar cierta complejidad y sobrecarga al sistema en general, y puede que no sea la solución más óptima según los requisitos y limitaciones específicos del sistema.

    Alternativamente, también puede explorar otras opciones como usar una herramienta de terceros o script personalizado para copiar los archivos de registro desde el directorio de compartir archivos de red a un directorio local y luego usar Filebeat para enviarlos a Elastic. Esta opción puede requerir un esfuerzo de desarrollo y mantenimiento adicional, pero puede ayudar a superar la limitación de Filebeat y evitar el uso de Logstash si no se prefiere.

Comments are closed.