nsyslog
Version:
Modular new generation log agent. Reads, transform, aggregate, correlate and send logs from sources to destinations
88 lines (75 loc) • 3.68 kB
Markdown
Los transportadores están diseñados para escribir entradas en puntos de destino, como archivos, syslog, bases de datos, etc.
Dado que un flujo puede tener más de un transportador, y dado que implican operaciones de E/S asíncronas, puedes enviar entradas a estos transportadores en modo serial o paralelo. Como se ve en la sección de procesadores, nuevamente, las entradas se escriben en los transportadores siempre preservando el orden.
Este es el conjunto principal de transportadores incluidos:
* [Consola](console.md)
* [Archivo](file.md)
* [HTTP](http.md)
* [Kafka](kafka.md)
* [MongoDB](mongo.md)
* [Nulo](null.md)
* [Redis](redis.md)
* [Reemitir](reemit.md)
* [Syslog](syslog.md)
* [ZeroMQ](zmq.md)
Cada transportador se configura de la misma manera en el archivo de configuración JSON:
```javascript
"transporters" : {
"mongo" : {
"type" : "mongo",
"when" : {
"filter" : "${write}==true",
"nomatch" : "block"
},
"config" : {
"url" : "mongodb://localhost:27017/test",
"retry" : true,
"format" : {
"seq" : "${seq}",
"line" : "${originalMessage}"
}
}
},
"null" : {
"type" : "null"
}
}
```
Veamos cada sección de la configuración JSON:
* **ID** : La primera clave (*mongo*, *null*) es el ID / Referencia del transportador. Puede ser cualquier nombre que desees (siguiendo las reglas de JSON) y se usará como referencia en otras secciones.
* **type** : El tipo de transportador (como se vio antes).
* **config** : Estos son los parámetros de configuración particulares de cada tipo de procesador.
* **when** : Opcional. Define un filtro inicial para las entradas.
* **filter** : Puede ser una expresión o *false*. Si una entrada coincide con la expresión, se enviará a los flujos; de lo contrario, la entrada se ignora.
* **match** : Puede ser *process* (por defecto), *bypass* o *block*. Si es *process*, cuando la entrada coincide con la expresión del filtro, es procesada por el componente. En modo *bypass*, el componente ignora la entrada y la envía al siguiente componente en el flujo. Si es *block*, la entrada se ignora completamente.
* **nomatch** : Puede ser *process*, *bypass* o *block*. Acción a realizar cuando la entrada no coincide con el filtro.
Un flujo puede tener múltiples transportadores, por lo que las entradas pueden escribirse en múltiples puntos de destino. A diferencia de los procesadores, que deben ejecutarse en un orden secuencial (serial), los transportadores pueden ejecutarse en orden serial o paralelo, para que puedas escribir simultáneamente en todos los puntos de destino o encadenarlos.
```javascript
{
"flows" : [
// Modo serial
{"from":"*", "transporters":["mongo","null"], "mode":"serial"},
// Paralelo
{"from":"*", "transporters":["mongo","null"], "mode":"parallel"},
// Modo mixto usando grupos de transportadores
{"from":"*", "transporters":["console","$serial_chain"], "mode":"parallel"},
]
}
```
Un conjunto de transportadores puede agruparse bajo un único ID, para que sea fácil referenciarlo, utilizando este único ID en lugar de la lista completa de IDs de transportadores:
```javascript
{
"transporterGroups" : {
// Modo serial
"serial_chain" : {"mode":"serial", "transporters":["file","syslog","http"]},
// Modo paralelo
"parallel_chain" : {"mode":"parallel", "transporters":["file","syslog","http"]},
// Grupos anidados
"nested_chain" : {"mode":"serial", "transporters":["$serial_chain","$parallel_chain"]},
}
}
```
[](../README.md)