Free Alternative To Splunk By Fluentd
Last updated
Last updated
Splunk is a great tool for searching logs, but its high cost makes it prohibitive for many teams. In this article, we present a free and open source alternative to Splunk by combining three open source projects: Elasticsearch, Kibana, and Fluentd.
Elasticsearch is an open source search engine known for its ease of use. Kibana is an open source Web UI that makes Elasticsearch user friendly for marketers, engineers and data scientists alike.
By combining these three tools (Fluentd + Elasticsearch + Kibana) we get a scalable, flexible, easy to use log search engine with a great Web UI that provides an open-source Splunk alternative, all for free.
In this guide, we will go over installation, setup, and basic use of this combined log search solution. This article was tested on Mac OS X Mountain Lion. If you're not familiar with Fluentd, please learn more about Fluentd first.
Please confirm that your Java version is 8 or higher.
Now that we've checked for prerequisites, we're now ready to install and set up the three open source tools.
To install Elasticsearch, please download and extract the Elasticsearch package as shown below.
Once installation is complete, start Elasticsearch.
To install Kibana, download it via the official webpage and extract it. Kibana is a HTML / CSS / JavaScript application. Download page is here. In this article, we download Mac OS X binary.
Once installation is complete, start Kibana and run ./bin/kibana
. You can modify Kibana's configuration via config/kibana.yml
.
Access http://localhost:5601
in your browser.
In this guide We'll install td-agent, the stable release of Fluentd. Please refer to the guides below for detailed installation steps.
Next, we'll install the Elasticsearch plugin for Fluentd: fluent-plugin-elasticsearch. Then, install fluent-plugin-elasticsearch as follows.
We'll configure td-agent (Fluentd) to interface properly with Elasticsearch. Please modify /etc/td-agent/td-agent.conf
as shown below:
fluent-plugin-elasticsearch comes with a logstash_format option that allows Kibana to search stored event logs in Elasticsearch.
Once everything has been set up and configured, we'll start td-agent.
In our final step, we'll forward the logs from your rsyslogd to Fluentd. Please add the following line to your /etc/rsyslog.conf
, and restart rsyslog. This will forward your local syslog to Fluentd, and Fluentd in turn will forward the logs to Elasticsearch.
Please restart the rsyslog service once the modification is complete.
Once Fluentd receives some event logs from rsyslog and has flushed them to Elasticsearch, you can search the stored logs using Kibana by accessing Kibana's index.html in your browser. Here is an image example.
To manually send logs to Elasticsearch, please use the logger
command.
When debugging your td-agent configuration, using filter_stdout will be useful. All the logs including errors can be found at /etc/td-agent/td-agent.log
.
This article introduced the combination of Fluentd and Kibana (with Elasticsearch) which achieves a free alternative to Splunk: storing and searching machine logs. The examples provided in this article have not been tuned.
If you will be using these components in production, you may want to modify some of the configurations (e.g. JVM, Elasticsearch, Fluentd buffer, etc.) according to your needs.
Fluentd Get Started
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.