Ruby
The 'fluent-logger-ruby' library is used to post records from Ruby applications to Fluentd.
This article explains how to use the fluent-logger-ruby library.
Prerequisites
- Basic knowledge of Ruby
- Basic knowledge of Fluentd
- Ruby 1.9 or later
Installing Fluentd
Please refer to the following documents to install fluentd.
- Install Fluentd with rpm Package
- Install Fluentd with deb Package
- Install Fluentd with Ruby Gem
- Install Fluentd from source
Modifying the Config File
Next, please configure Fluentd to use the forward Input plugin as its data source.
<source>
@type forward
port 24224
</source>
<match fluentd.test.**>
@type stdout
</match>
Please restart your agent once these lines are in place.
# for rpm/deb only
$ sudo /etc/init.d/td-agent restart
Using fluent-logger-ruby
First, add the 'fluent-logger' gem to your Gemfile.
gem 'fluent-logger', "~> 0.4.3"
Next, please initialize and post the records as shown below.
require 'fluent-logger'
Fluent::Logger::FluentLogger.open(nil, :host=>'localhost', :port=>24224)
Fluent::Logger.post("fluentd.test.follow", {"from"=>"userA", "to"=>"userB"})
Executing the script will send the logs to Fluentd.
$ ruby test.rb
The logs should be output to /var/log/td-agent/td-agent.log or stdout of the Fluentd process via the stdout Output plugin.
Production Deployments
Output Plugins
Various output plugins are available for writing records to other destinations:
- Examples
- List of Plugin References
High-Availability Configurations of Fluentd
For high-traffic websites (more than 5 application nodes), we recommend using a high availability configuration of td-agent. This will improve data transfer reliability and query performance.
Monitoring
Monitoring Fluentd itself is also important. The article below describes general monitoring methods for td-agent.
If this article is incorrect or outdated, or omits critical information, please let us know. Fluentd is a open source project under Cloud Native Computing Foundation (CNCF). All components are available under the Apache 2 License.