Nodejs
The 'fluent-logger-node' library is used to post records from Node.js applications to Fluentd.
This article explains how to use the fluent-logger-node library.
Prerequisites
Basic knowledge of Node.js and NPM
Basic knowledge of Fluentd
Node.js 0.6 or higher
Installing Fluentd
Please refer to the following documents to install fluentd.
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-node
Obtaining the Most Recent Version
The most recent version of fluent-logger-node can be found here.
A Sample Application
A sample Express app using fluent-logger-node is shown below.
package.json
{
"name": "node-example",
"version": "0.0.1",
"dependencies": {
"express": "^4.15.3",
"fluent-logger": "^2.4.0"
}
}
Now use npm to install your dependencies locally:
$ npm install
index.js
This is the simplest web app.
var express = require('express');
var logger = require('fluent-logger');
var app = express();
// The 2nd argument can be omitted. Here is a default value for options.
logger.configure('fluentd.test', {
host: 'localhost',
port: 24224,
timeout: 3.0,
reconnectInterval: 600000 // 10 minutes
});
app.get('/', function(request, response) {
logger.emit('follow', {from: 'userA', to: 'userB'});
response.send('Hello World!');
});
var 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. This will send the logs to Fluentd.
$ node index.js
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:
List of Plugin References
Output to Another Fluentd
Output to MongoDB or MongoDB ReplicaSet
Output to Hadoop
Output to File
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.
Last updated
Was this helpful?