vmware / fluent-plugin-vmware-log-intelligence

Fluentd output plugin that sends data to VMware Log Intelligence.
Other
8 stars 14 forks source link

= Overview

vmware_log_intelligence is a Fluentd output plugin that buffers data and sends the data to VMware Log Intelligence.

== Requirements

fluentd version: 0.14.0 or above

Ruby version: 2.2 or above

== Build and install the plugin

gem build fluent-plugin-vmware-log-intelligence.gemspec

gem install fluent-plugin-vmware-log-intelligence-1.0.0.gem

== Usage vmware_log_intelligence does not support Fluentd v0.12 style configurations. Please use Fluentd v1.0 style configurations when working with the plugin.

Here is an example of the vmware_log_intelligence plugin configurations:

@type vmware_log_intelligence endpoint_url https://data.upgrade.symphony-dev.com/le-mans/v1/streams/ingestion-pipeline-stream verify_ssl false http_compress false Content-Type application/json Authorization Bearer Your-VMware-Log-Intelligence-API-Token structure simple @type file path /path/to/buffer/lint.buf chunk_limit_records 300 flush_interval 20s delayed_commit_timeout 120s retry_max_times 3 @type json tag_key text

You can find more configuration examples in the files under the examples folder.

Besides Fluentd, you can also use the plugin with td-agent.

== Payload format VMware Log Intelligence expects the body of the HTTP requests you send to be in JSON format. It also expects the JSON payload to have a 'text' field that contains your raw log text.

The fluentd way of turning raw log text into a JSON is to use the JSON formatter plugin (https://docs.fluentd.org/v0.12/articles/formatter_json). The plugin uses a 'tag' field to store the text of a log. One configuration option of the JSON formatter plugin is called 'tag_key'. You need to set 'tag_key' to 'text' so that the JSON formatter will generate JSON payloads that conform to what VMware Log Intelligence expects.

== Configuration

=== endpoint_url This is the URL to which you want to send the logs to. You should set it to the URL of VMware Log Intelligence: https://data.upgrade.symphony-dev.com/le-mans/v1/streams/ingestion-pipeline-stream

=== verify_ssl You can use this setting to control whether the vmware_log_intelligence plugin should verify the SSL certificate of the endpoint_url. You should always set this to true except in testing or troubleshooting.

=== http_compress You can use this setting to compress the data while sending it to vRealize Log Insight Cloud. The default value is set 'false' here, If needed you can set it 'true'.

=== In order to send logs to VMware Log Intelligence, you need to have the <headers> section in your configuration. The <headers> section should look like the following:

Content-Type application/json Authorization Bearer Your-VMware-Log-Intelligence-API-Token structure simple

=== The vmware_log_intelligence plugin supports buffering. All the buffering configurations of Fluentd are supported. Detailed information of the buffering configurations can be found here https://docs.fluentd.org/v1.0/articles/buffer-section.

== Run tests If you would like to contribute to this project, you might want to be able to run the tests under the test folder. You can do that in a Ruby environment you have set up on your dev machine. You can also run the tests in a Docker container. To run the tests in a Docker container, you can follow these steps:

Go to the root folder of this project and build the Docker image like this: docker build -t fluent-plugin-dev .

Run the container like this: docker run --rm -i -t --name fluent-plugin-dev -v $(pwd):/app fluent-plugin-dev /bin/bash

Once inside the container, you can run the following to make sure that all dependecies are installed: bundle install

Then you can run tests like this: bundle exec rake

== Contributing The vmware_log_intelligence plugin project team welcomes contributions from the community. Before you start working with fluent-plugin-vmware-log-intelligence, please read our Developer Certificate of Origin. All contributions to this repository must be signed as described on that page. Your signature certifies that you wrote the patch or have the right to pass it on as an open-source patch. For more detailed information, refer to CONTRIBUTING.md.

== License Please see LICENSE.txt[LICENSE.txt].

== Copyright

Copyright (c) 2013 ablagoev.

Copyright 2018 VMware, Inc.