Supongamos que tiene 2 tipos de registros muy diferentes, como registros técnicos y comerciales, y desea:
- Los registros técnicos sin procesar se enrutarán hacia un servidor graylog2 mediante una
gelf
salida, - json los registros comerciales se almacenan en un clúster de elasticsearch utilizando la
elasticsearch_http
salida dedicada .
Sé que, Syslog-NG
por ejemplo, el archivo de configuración permite definir varias entradas distintas que luego se pueden procesar por separado antes de ser despachadas; lo que Logstash
parece incapaz de hacer. Incluso si una instancia se puede iniciar con dos archivos de configuración específicos, todos los registros toman el mismo canal y se aplican los mismos procesamientos ...
¿Debo ejecutar tantas instancias como diferentes tipos de registros?
Respuestas:
¡No! Solo puede ejecutar una instancia para manejar diferentes tipos de registros.
En el archivo de configuración de logstash, puede especificar cada entrada con un tipo diferente . Luego, en el filtro puede usar if para distinguir diferentes procesamientos, y también en la salida puede usar la salida "if" a un destino diferente.
Espero que esto le pueda ayudar :)
fuente
type
atributo (con la mismatype => "value"
sintaxis) en el filtro y las definiciones de salida, lo que debería reducir un poco el formato adicional dentro del archivo de configuración. Ejemplo: gist.github.com/fairchild/3030472 Por documentación: agregue un campo 'tipo' a todos los eventos manejados por esta entrada. Los tipos se utilizan principalmente para la activación de filtros. El tipo se almacena como parte del evento en sí, por lo que también puede usar el tipo para buscarlo en la interfaz web.type => "value"
en una salida, apareció el siguiente mensaje: "Estás usando una configuración de configuración obsoleta" tipo "establecida en stdout. Las configuraciones obsoletas continuarán funcionando, pero están programadas para su eliminación de logstash en el futuro. Puedes lograr este mismo comportamiento con los nuevos condicionales, como:if [type] == "sometype" { stdout { ... } }
". Me retracto de mi comentario anterior. :)type
atributo no se aplicará si ya existe un campo de tipo de la entrada. Este es un atributo especial que no se anula y está documentado. Abrí un ticket en Elastic y me recomendaron usartags
o enadd_field
lugar detype
Usé etiquetas para la entrada de múltiples archivos:
fuente
Creo que logstash no puede leer más de 2 archivos en la sección de entrada. prueba lo siguiente
fuente