ELK(Elasticsearch,Logstash,Kibana)
Elasticsearch: Elasticsearch 是基于 JSON 的分布式搜索和分析引擎,专为实现水平扩展、高可用和管理便捷性而设计
Logstash: Logstash 是动态数据收集管道,拥有可扩展的插件生态系统,能够与 Elasticsearch 产生强大的协同作用
Kibana: Kibana 能够以图表的形式呈现数据,并且具有可扩展的用户界面,供您全方位配置和管理 Elastic Stack
ELK 的安装配置(Windows 10)
安装目前最新版本 Elasticsearch 5.6.2,需要确保 Java 的版本至少为 Java 8
由于在 Windows 的环境下,所以可以直接下载官网的 elasticsearch-5.6.2.msi 进行安装。安装完成之后,管理员身份运行 elasticsearch.exe 即可,成功之后便可以访问 localhost:9200,会显示如下信息:
1 | { |
之后再下载 Kibana 和 Logstash 的 zip,直接解压即可。这里要注意,要保持 ELK 版本的一致,即都是 5.6.2
运行 kibana.bat 成功之后,浏览器便可以访问 localhost:5601,通过图形界面浏览、操作数据
对于 Logstash,先创建文件 Logstash.conf,用于定义数据的输入,过滤,以及输出。例如,解析文件,并且将解析后的数据存入 Elasticsearch:
文件内的数据结构:
1 | 192.168.1.1 name1 |
Logstash.conf 定义:
input{} 定义数据的来源,file{} 从文件中读取数据,start_position 设置为 beginning 代表第一次读取文件时,从初始位置开始读取数据。因为读取文件的同时,会记录读取到的位置,所以之后文件里增加新数据后,是直接读取新的数据,并不会重头开始读取数据
filter{} 定义数据的处理,grok{} 解析非结构化数据,一些官方写好的正则 patterns,可以直接使用
output{} 定义数据的输出,elasticsearch{} 输出到 Elasticsearch 里,stdout{} 输出到正在运行的界面中,方便查看
1 | input{ |
之后通过命令提示符,在 bin 目录下运行:
1 | c:\logstash-5.6.2\bin>.\logstash.bat -f ..\config\Logstash.conf |
由于设置了 stdout,所以可以在界面上看到:
1 | { |
同时可以在 Kibana 的浏览器界面的控制台 Dev Tools -> Console 输入 GET /test-logstash-2017-10/_search 进行查看
Java 与 Elasticsearch
这里采用 Java High Level REST Client 来进行操作
Maven Repository:
1 | <dependency> |
同时在 src/main/resources 创建文件 log4j2.properties:
1 | appender.console.type = Console |
例子:
1 | import org.apache.http.HttpHost; |