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
.
- Basic knowledge of Node.js and NPM
- Basic knowledge of Fluentd
- Node.js 12.0 or higher
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
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 agent after configuring.
# for rpm/deb only
$ sudo /etc/init.d/td-agent restart
# or systemd
$ sudo systemctl restart td-agent.service
The most recent version of @fluent-org/logger
can be found here.
Here is a sample Express app using @fluent-org/logger
:
{
"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
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/td-agent/td-agent.log
or the standard output of the Fluentd process via stdout
output plugin.
Various output plugins are available for writing records to other destinations:
- Examples
- List of Plugin References
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
.
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.