来自第Fluentd
概述
Elasticsearch,Fluentd和Kibana(EFK)允许您收集,索引,搜索和可视化日志数据。 这是专有软件Splunk的一个很好的选择,它允许您免费入门,但是一旦数据量增加,需要付费许可。
本教程介绍了如何建立使用三个开源软件组件的日志解决方案: Elasticsearch , Fluentd和Kibana 。
先决条件
- 与Ubuntu 14.04Droplet
- 用户使用sudo的特权
安装和配置Elasticsearch
获取Java
Elasticsearch需要Java,所以第一步是安装Java。
sudo apt-get update
sudo apt-get install openjdk-7-jre-headless --yes
检查Java是否确实已安装。 跑:
java -version
输出应如下所示:
java version "1.7.0_55"
OpenJDK Runtime Environment (IcedTea 2.4.7) (7u55-2.4.7-1ubuntu1)
OpenJDK 64-Bit Server VM (build 24.51-b03, mixed mode)
获取Elasticsearch
接下来,下载并安装Elasticsearch的deb包,如下所示。
sudo wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.2.2.deb
sudo dpkg -i elasticsearch-1.2.2.deb
保护Elasticsearch
最高版本1.2,Elasticsearch的动态脚本功能默认情况下已启用。 由于本教程中设置了Kibana仪表板是从公共互联网访问,让我们通过附加在末尾的以下行来禁止动态脚本/etc/elasticsearch/elasticsearch.yml
:
script.disable_dynamic: true
启动Elasticsearch
使用以下命令开始运行Elasticsearch。
sudo service elasticsearch start
安装和配置Kibana
获取Kibana
移至您的主目录:
cd ~
我们将下载Kibana如下:
curl -L https://download.elasticsearch.org/kibana/kibana/kibana-3.1.0.tar.gz | tar xzf -
sudo cp -r kibana-3.1.0 /usr/share/
配置Kibana
因为Kibana将使用端口80交谈Elasticsearch而不是默认端口9200,Kibana的config.js
必须更新。
打开/usr/share/kibana-3.1.0/config.js
并查找以下行:
elasticsearch: "http://"+window.location.hostname+":9200",
并将其替换为以下行:
elasticsearch: "http://"+window.location.hostname+":80",
安装和配置Nginx(代理服务器)
我们将使用Nginx作为代理服务器,允许从公共互联网访问仪表板(使用基本认证)。
安装Nginx如下:
sudo apt-get install nginx --yes
Kibana提供了一个好的默认nginx.conf,我们将稍微修改。
首先,安装配置文件如下:
wget https://assets.digitalocean.com/articles/fluentd/nginx.conf
sudo cp nginx.conf /etc/nginx/sites-available/default
注:原始文件是从这个Kibana GitHub的信息库 。
然后,编辑/etc/nginx/sites-available/default
如下(红色标记的变化):
#
# Nginx proxy for Elasticsearch + Kibana
#
# In this setup, we are password protecting the saving of dashboards. You may
# wish to extend the password protection to all paths.
#
# Even though these paths are being called as the result of an ajax request, the
# browser will prompt for a username/password on the first request
#
# If you use this, you'll want to point config.js at http://FQDN:80/ instead of
# http://FQDN:9200
#
server {
listen *:80 ;
server_name localhost;
access_log /var/log/nginx/kibana.log;
location / {
root /usr/share/kibana-3.1.0;
index index.html index.htm;
}
最后,重启nginx如下:
$ sudo service nginx restart
现在,您应该能够使用您喜欢的浏览器在服务器的IP地址或域中看到通用的Kibana仪表板。
安装和配置Fluentd
最后,让我们安装Fluentd 。 我们将使用TD-剂,Fluentd的打包版本,通过建立和维护宝藏数据 。
通过td-agent包安装Fluentd
使用以下命令安装Fluentd:
wget http://packages.treasuredata.com/2/ubuntu/trusty/pool/contrib/t/td-agent/td-agent_2.0.4-0_amd64.deb
sudo dpkg -i td-agent_2.0.4-0_amd64.deb
安装插件
我们需要几个插件:
- out_elasticsearch:此插件允许Fluentd将数据流式传输到Elasticsearch。
- 出唱片的改革者:这个插件可以让我们处理数据成一个有用的格式。
下面的命令同时安装插件(第apt-get是为out_elasticsearch:它需要make
和libcurl
)
sudo apt-get install make libcurl4-gnutls-dev --yes
sudo /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-elasticsearch
sudo /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-record-reformer
接下来,我们配置Fluentd来侦听syslog消息并将它们发送到Elasticsearch。 打开/etc/td-agent/td-agent.conf
并在文件的顶部加上下面几行:
<source>
type syslog
port 5140
tag system
</source>
<match system.*.*>
type record_reformer
tag elasticsearch
facility ${tag_parts[1]}
severity ${tag_parts[2]}
</match>
<match elasticsearch>
type copy
<store>
type stdout
</store>
<store>
type elasticsearch
logstash_format true
flush_interval 5s #debug
</store>
</match>
启动Fluentd
使用以下命令启动Fluentd:
sudo service td-agent start
转发rsyslog流量到Fluentd
Ubuntu 14.04附带rsyslogd。 需要重新配置以将syslog事件转发到Fluentd监听的端口(本示例中为端口5140)。
打开/etc/rsyslog.conf
(你需要sudo
),并添加以下行上方
*.* @127.0.0.1:5140
保存并退出编辑器后,按如下所示重新启动rsyslogd:
sudo service rsyslog restart
设置Kibana仪表板面板
Kibana的默认面板非常通用,因此建议自定义它们。 这里,我们显示两种方法。
方法1:使用模板
Fluentd团队提供了一个备用的Kibana配置,与默认配置相比,可以更好地使用此设置。 要使用此备用配置,请运行以下命令:
wget -O default.json https://assets.digitalocean.com/articles/fluentd/default.json
sudo cp default.json /usr/share/kibana-3.1.0/app/dashboards/default.json
注:原来的配置文件是从作者的GitHub的依据 。
如果您在服务器的URL上刷新Kibana仪表板主页,Kibana现在应配置为按syslog严重性和功能显示直方图,以及表中的最近日志行。
方法2:手动配置
转到服务器的IP地址或域以查看Kibana仪表板。
有一对夫妇的入门模板,但我们选择了空白的一个叫做空白板:我对我自己的舒适配置 ,在欢迎文本的底部。
接下来,点击+添加仪表盘上的右侧的行按钮。 新行A配置屏幕( 行由一个或多个板)应显示。 输入标题,按创建行按钮,然后保存 。 这将创建一行。
当创建一个空行,Kibana显示提示添加面板空行左侧。 单击此按钮。 它将带您进入配置屏幕,添加一个新面板。 选择从下拉菜单中的直方图 。 直方图是时间图; 有关更多信息,请参阅Kibana的文档 。
有许多参数来配置一个新的直方图,但你可以向下滚动,然后按保存按钮。 这将创建一个新面板。
更多信息
有关配置Kibana的详细信息,请参阅Kibana文档页面 。