/fluent-bit-rabbitmq-output

go modules

Primary LanguageGoApache License 2.0Apache-2.0

fluent-bit-rabbitmq-output

With this fluent-bit-plugin it is possible to send logs and metrics, which have been collected by fluent-bit, to a rabbitmq-exchange. Furthermore it is possible with this plugin to to store data fields from each collected log or metric into the routing-key .

Build

Run the following command to build the plugin:

build

Configuration

Configuration-Parameter

Parameter Description Default-Value
RabbitHost The hostname of the Rabbit-MQ server ""
RabbitPort The port under which the Rabbit-MQ is reachable ""
RabbitScheme The scheme "amqp"
RabbitVerifyTLS Verify TLS connection "no"
RabbitUser The user of the Rabbit-MQ host ""
RabbitPassword The username of the user which connects to the Rabbit-MQ server ""
ExchangeName The exchange to which fluent-bit send its logs ""
ExchangeType The exchange-type ""
RoutingKey The routing-key pattern ""
RoutingKeyDelimiter The Delemiter which seperates the routing-key parts "."
RemoveRkValuesFromRecord If enabled fluentd deletes the values of the record, which have been stored in the routing-key ""
RabbitVHost The vhost "/"

Routing-Key pattern

You can access values from each record an store them into the routing-key, by specifying a record-accessor.

Example Record-Accessor

$['key1'][0]["key2"]

The routing-key parts are delimited by the RoutingKeyDelimiter. If a string in one of the record-accesors containes the delimiter the plugin will not work as expected.

Example Routing-key

$["loglevel_3"].$["loglevel_1"][2]["sublevel"][0].$["loglevel_2"]["info_loglevel"]

This functionality has been implemented with the Record Accessor - Plugin Helper

Run

If you want to run the plugin with the example config in /conf, you need to run the following command:

fluent-bit -e ./out_rabbitmq.so -c conf/fluent-bit-docker.conf