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:
<match pattern> @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 <headers> Content-Type application/json Authorization Bearer Your-VMware-Log-Intelligence-API-Token structure simple </headers> <buffer> @type file path /path/to/buffer/lint.buf chunk_limit_records 300 flush_interval 20s delayed_commit_timeout 120s retry_max_times 3 </buffer> <format> @type json tag_key text </format> </match>
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 (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: 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’.
<headers>¶ ↑
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:
<headers> Content-Type application/json Authorization Bearer Your-VMware-Log-Intelligence-API-Token structure simple </headers>
<buffer>¶ ↑
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 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](cla.vmware.com/dco). 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](CONTRIBUTING.md).
License¶ ↑
Please see LICENSE.txt.
Copyright¶ ↑
Copyright © 2013 ablagoev.
Copyright 2018 VMware, Inc.