Fluentd

Scala

The fluent-logger-scala library is used to post records from Scala applications to Fluentd.

This article explains how to use it.

Prerequisites

  • Basic knowledge of Scala and sbt
  • Basic knowledge of Fluentd
  • Scala 2.11.0 or later
  • sbt 0.12.0 or later

Installing Fluentd

Please refer to the following document to install Fluentd:

Modifying the Config File

Configure Fluentd to use the forward input plugin as its data source:

<source>
  @type forward
  port 24224
</source>
<match fluentd.test.**>
  @type stdout
</match>

Restart Fluentd after configuring.

# for fluent-package (rpm/deb)
$ sudo systemctl restart fluentd

Using fluent-logger-scala

Add the following lines to build.sbt:

resolvers += "Apache Maven Central Repository" at "https://repo.maven.apache.org/maven2/"

libraryDependencies += "org.fluentd" %% "fluent-logger-scala" % "(version)"

See release notes for the revision information.

or

resolvers += "Sonatype Repository" at "http://oss.sonatype.org/content/repositories/releases"

libraryDependencies += "org.fluentd" %% "fluent-logger-scala" % "(version)"

Create an app with the following code:

import org.fluentd.logger.scala.FluentLoggerFactory
import scala.collection.mutable.HashMap

object Sample {
  val LOG = FluentLoggerFactory.getLogger("fluentd.test")

  def main(args: Array[String]): Unit = {

    ...
    val data = new HashMap[String, String]();
    data.put("from", "userA");
    data.put("to", "userB");
    LOG.log("follow", data);
    ...
  }
}

Further information on the API can be found here.

Executing the script will send the logs to Fluentd:

$ sbt
> run

The logs should be output to /var/log/fluent/fluentd.log or the standard output of the Fluentd process via the stdout output plugin.

Production Deployments

Output Plugins

Various output plugins are available for writing records to other destinations:

High-Availability Configurations of Fluentd

For high-traffic websites (more than 5 application nodes), we recommend using the high-availability configuration for Fluentd. This will improve the reliability of data transfer and query performance.

Monitoring

Monitoring Fluentd itself is also important. The article below describes the general monitoring methods for Fluentd.

results matching ""

    No results matching ""