Fluentd

Nodejs

The @fluent-org/logger library is used to post records from Node.js applications to Fluentd.

This article explains how to use it.

NOTE: The previous NPM package, fluent-logger has been deprecated in favor of @fluent-org/logger.

Prerequisites

  • Basic knowledge of Node.js and NPM
  • Basic knowledge of Fluentd
  • Node.js 12.0 or higher

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-org/logger

Obtaining the Most Recent Version

The most recent version of @fluent-org/logger can be found here.

A Sample Application

Here is a sample Express app using @fluent-org/logger:

package.json

{
  "name": "node-example",
  "version": "0.0.1",
  "dependencies": {
    "express": "^4.16.0",
    "@fluent-org/logger": "^1.0.2"
  }
}

Use npm to install dependencies locally:

$ npm install

index.js

This is a simple web app:

const express = require('express');
const FluentClient = require('@fluent-org/logger').FluentClient;
const app = express();

// The 2nd argument can be omitted. Here is a default value for options.
const logger = new FluentClient('fluentd.test', {
  socket: {
    host: 'localhost',
    port: 24224,
    timeout: 3000, // 3 seconds
  }
});

app.get('/', function(request, response) {
  logger.emit('follow', {from: 'userA', to: 'userB'});
  response.send('Hello World!');
});
const port = process.env.PORT || 3000;
app.listen(port, function() {
  console.log("Listening on " + port);
});

Run the app and go to http://localhost:3000/ in your browser to send the logs to Fluentd:

$ node index.js

The logs should be output to /var/log/fluent/fluentd.log or the standard output of the Fluentd process via 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 ""