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; |