转载*请注明原始出处:http://blog.csdn.net/a464057216/article/details/50938921
2017.03.20更新:适用于ELK 5.2.2版本
在被监控的系统使用Beats平台,要配合Elasticsearch、Logstash(如果需要的话)、Kibana共同使用。搭建该平台要求在安装Beat客户端的机器上可以访问到Elasticsearch、Logstash(如果有的话)以及Kibana服务器。随着系统的演进,可能会将Elasticsearch扩展为集群,或者将部署过程自动化。
1.安装Elasticsearch
Elasticsearch是一个实时的、分布式存储、查询和分析引擎。它尤其擅长索引半结构化的数据,比如日志或者网络报文。关于Elasticsearch的更详细的安装过程可以参考Elasticsearch安装过程,确认Elasticsearch安装并运行成功后,进行下一步。
2.安装Logstash(可选)
在最简单的Beats平台中,可以不使用Logstash,使用Logstash的优势在于可以自由调整Beats收集到的数据的格式,并且Logstash有很多output的插件可以与其他系统很好的结合。关于Logstash的更详细的安装过程可以参考这里。
确认Logstash安装并运行成功后,还需要对Logstash进行一些配置才可以配合Beats平台使用。比如,Logstash使用beats input plugin
接收来自beat的数据(适配所有遵循beats框架的beat),然后使用Elasticsearch output plugin向Elasticsearch发送数据,比如在/etc/logstash/conf.d
目录下添加配置文件beats-input.conf
:
input {
beats {
port => 5044
type => "logs"
}
}
再添加如下配置文件output.conf:
output {
elasticsearch {
hosts => "localhost:9200"
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}
当然,需要在Beat的配置文件中指定将收集到的数据发送给Logstash,下面以使用Filebeat收集日志为例讲解Logstash与Filebeat配合的方法。
3.安装Filebeat
关于Filebeat的更详细的安装过程可以参考这里。在filebeat.yml的配置文件中,配置要监控的日志文件的路径,然后配置Filebeat向Logstash输出,需要在output字段将向Elasticsearch输出的配置注释掉,然后将向Logstash的输出的配置反注释掉。比如:
output:
logstash:
hosts: ["localhost:5044"]
在启动Filebeat之前,需要Elasticsearch加载相应的索引模板,推荐使用的模板在安装Filebeat的时候已经放在其配置路径下面了,名字叫做filebeat.template.json,可以使用如下命令装载模板:
$ curl -XPUT 'http://localhost:9200/_template/filebeat?pretty' -d@/etc/filebeat/filebeat.template.json
然后从下游到上游依次启动各个工具:
$ sudo service elasticsearch restart
$ sudo service logstash restart
$ sudo service filebeat restart
在被监控日志文件中添加内容,查看/var/lib/elasticsearch中是否有新增内容,如果有的话,进行下一步。
4.安装Kibana
Kibana是一个与Elasticsearch配合使用的图形化工具,提供高度可定制化的UI。关于Kibana的更详细的安装过程可以参考这里。确认Kibana安装并运行成功后,在浏览器中访问http://localhost:5601,第一次使用会跳转至Kibana的配置界面,填入配置的索引的pattern(本教程的index pattern是filebeat-*),敲入回车,然后点击Create:
接下来显示将会被显示在Kibana的Field字段:
目前我们先忽略这部分的内容,点击左上角的Discover页签,在被监控的日志中添加新的一行并保存,就会看到日志中的信息:
至此,最简单的ELK日志分析平台就搭建完成了。后续如果想根据自己的需求进行定制,需要继续深入研究Filebeat、Logstash、Elasticsearch及Kibana的配置了。
如果觉得我的文章对您有帮助,欢迎关注我(CSDN:Mars Loo的博客)或者为这篇文章点赞,谢谢!