The fluent-logger-scala
library is used to post records from Scala applications to Fluentd.
This article explains how to use it.
Basic knowledge of Scala and sbt
Basic knowledge of Fluentd
Scala 2.11.0 or later
sbt 0.12.0 or later
Please refer to the following documents to install fluentd:
Configure Fluentd to use the forward
input plugin as its data source:
<source>@type forwardport 24224</source><match fluentd.test.**>@type stdout</match>
Restart agent after configuring.
# for rpm/deb only$ sudo /etc/init.d/td-agent restart​# or systemd$ sudo systemctl restart td-agent.service
Add the following lines to build.sbt
:
resolvers += "Apache Maven Central Repository" at "http://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.FluentLoggerFactoryimport 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/td-agent/td-agent.log
or the standard output of the Fluentd process via the stdout
output plugin.
Various output plugins are available for writing records to other destinations:
Examples
List of Plugin References
​Output to MongoDB or MongoDB ReplicaSet​
​Output to Hadoop​
​Output to File​
​etc...​
For high-traffic websites (more than 5 application nodes), we recommend using the high-availability configuration for td-agent
. This will improve the reliability of data transfer and query performance.
Monitoring Fluentd itself is also important. The article below describes the general monitoring methods for td-agent
.
​Monitoring Fluentd​
If this article is incorrect or outdated, or omits critical information, please let us know. Fluentd is an open-source project under Cloud Native Computing Foundation (CNCF). All components are available under the Apache 2 License.