fluent-plugin-out-http, a plugin for Fluentd
A generic fluentd output plugin for sending logs to an HTTP endpoint.
NOTE: This plugin name is overlapped from Fluentd core plugin which name is out_http
. But core plugin does not provide buffered/non-buffered switch and batch/non-batch request switch. If you want to use these switch features. Please consider to use this plugin.
Installation
For bundler
Write the following line in Gemfile:
gem "fluent-plugin-out-http"
and then,
$ bundle install
for fluentd
$ fluent-gem install fluent-plugin-out-http
For td-agent
$ td-agent-gem install fluent-plugin-out-http
Configuration options
<match *>
@type http
endpoint_url http://localhost.local/api/
ssl_no_verify false # default: false
http_method put # default: post
serializer json # default: form
rate_limit_msec 100 # default: 0 = no rate limiting
raise_on_error false # default: true
recoverable_status_codes 503, 400 # default: 503
cacert_file /etc/ssl/endpoint1.cert # default: ''
client_cert_path /path/to/client_cert.crt # default: ''
private_key_path /path/to/private_key.key # default: ''
private_key_passphrase yourpassphrase # default: ''
custom_headers {"token":"arbitrary"} # default: nil
authentication basic # default: none
username alice # default: ''
password bobpop # default: '', secret: true
token tokent # default: ''
buffered true # default: false. Switch non-buffered/buffered mode
bulk_request false # default: false. Send events as application/x-ndjson
compress_request true # default: false. Send compressed events
</match>
Usage notes
If you'd like to retry failed requests, consider using fluent-plugin-bufferize.
Or, specify appropriate recoverable_status_codes
parameter.
To send events with bulk_request, you should specify bulk_request
as true
Note that when this parameter as true
, Fluentd always send events as application/x-ndjson
.
Currently, application/x-ndjson
is only supported MIME type for bulk_request.
Heavily based on fluent-plugin-growthforecast
How to release
- Update
gem.version
of thegemspec
file. - Update
CHANGELOG.md
. - Commit them.
-
$ bundle exec rake release
- It will add and push the tag, and publish the gem.