1 Elasticsearch
1.1 Elasticsearch 概述
ElasticSearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。作为 Elastic Stack 的核心,它集中存储数据,帮助发现意料之中以及意料之外的情况。
为什么要用 Elasticsearch 呢?
数据查询与分析:Elasticsearch 允许执行和合并多种类型的搜索 ( 结构化、非结构化、地理位置、度量指标 )搜索方式随心而变。其聚合让我们能够从大处着眼,探索数据的趋势和模式。
运行速度快:Elasticsearch 通过有限状态机实现了用于全文检索的倒排索引,实现了用于存储数值数据和位置数据的 BKD 树, 以及用于分析的列存储。 而且由于每个数据都被编入了索引,因此再也不用因为某些数据没有索引,我们可以用快到令人发指的速度使用和访问您的所有数据。
可扩展性:原型环境和生产环境可无缝切换。无论 Elasticsearch 是在一个节点上运行,还是在一个包含 300 个节点的集群上运行,我们都能够以相同的方式与 Elasticsearch 进行通信。它能够水平扩展,每秒钟可处理海量事件,同时能够自动管理索引和查询在集群中的分布方式,以实现极其流畅的操作。
弹性:硬件故障。网络分割。Elasticsearch 为我们检测这些故障并确保我们的集群(数据)安全和可用。
RESTful:Elasticsearch 使用的是标准的 RESTful API 和 JSON。此外,其还构建和维护了很多其他语言的客户端,例如 Java、Python、.NET、SQL 和 PHP 。
1.2 Elasticsearch 安装与使用
(1)下载 Elasticsearch 和解压进入文件夹
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.0.tar.gz
tar -xvf elasticsearch-5.6.0.tar.gz
cd elasticsearch-5.6.0
(2)启动 Elasticsearch
进入 bin 目录,执行以下命令启动 Elasticsearch:
./elasticsearch
如果没有出现 Error ,那么 Elasticsearch 就启动成功了。
1.3 将 Logstash 和 Elasticsearch 进行关联
可以看到,上一部分我们已将 Filebeat 作为 Logstash 的输入了,现在我们将 Elasticsearch 作为 Logstash 的输出,这样就能将数据传给 Elasticsearch 进行分析处理了。
(1)配置 Logstash 将 stdout 标准输出设置为 Elasticsearch。修改 logstash.conf ,修改为如下内容:
input { beats { port => "5044" } } filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}"} } geoip { source => "clientip" } } output { elasticsearch { hosts => [ "localhost:9200" ] } }
这里新增了一个过滤器,而过滤器中配置两个插件,其中:
gork:支持以正则表达式的方式提取所需要的信息,其中,正则表达式又分两种,一种是内置的正则表达式(可以满足我们大部分的要求),一种是自定义的正则表达式。在这里,过滤器中的
message
代表一条一条的日志,%{COMBINEDAPACHELOG}
代表解析日志的正则表达式。geoip:支持通过 IP 获取到很多的信息,包括经纬度,国家,城市,地区等信息,需要注意的是这些信息并不是用户当前访问的实际地址,而是IP所在地(包括经纬度也只是当前城市)。
(2)启动 Filebeat、Logstash。
./filebeat -e -c filebeat.yml -d "publish"
bin/logstash -f logstash.conf
查看 Elasticsearch 的反应(如果没有反应的话,可以在收集日志的文件夹下新建一个 文件 1.log
,输入一下内容保存退出。这样就能检测到从而在 Elasticsearch 创建一个 Index)。
至此,Elasticsearch 安装完成,也将其配置成 Logstash 的输出,下面安装 Kibana 进行可视化操作。
2 Kibana
2.1 Kibana 概述
Kibana 是一个开源的分析和可视化平台,旨在与 Elasticsearch 一起工作。我们可以使用Kibana 搜索,查看和与存储在 Elasticsearch 索引中的数据进行交互。还可以轻松地在各种图表,表格和地图中执行高级数据分析和可视化数据。
我们用来摄取数据的工具集在 Kibana 的首页都已就绪。有了 Kibana,命令行不再是管理 Elastic Stack 各项设置的唯一途径。与此同时,管理和升级 Elastic Stack 变得更加直观,能够让更多的人上手使用。
Console 等 Kibana 开发工具提供多种方法帮助我们开发 Elastic Stack。您可以跳过在终端键入的过程,直接处理 Elasticsearch 数据。Search Profiler 可让我们轻松查看搜索请求期间花费的时间。并且在Logstash 配置中创建复杂的 Grok 模式,使 Grok Debugger 变得轻而易举。
作者:苍云横渡
链接:https://www.jianshu.com/p/bf66e100946f