实时文章采集(ELK是个啥后,让我们一起动手搭建ELK实时日志分析平台)
优采云 发布时间: 2021-11-07 22:25实时文章采集(ELK是个啥后,让我们一起动手搭建ELK实时日志分析平台)
本文文章主要教大家如何搭建ELK实时日志分析平台。那么,ELK究竟是什么?
ELK 是三个开源项目的首字母缩写,分别是 Elasticsearch、Logstash 和 Kibana。
Elasticsearch 的核心是一个搜索引擎,所以用户开始将其用于日志用例,并希望能够轻松地采集 和可视化日志。鉴于此,Elastic 推出了强大的采集 管道 Logstash 和灵活的可视化工具 Kibana。
ELK日志系统的数据流图如下:
简单了解一下ELK是什么之后,让我们一起搭建一个ELK实时日志分析平台,首先安装Elasticsearch。
注意:ELK 环境的构建版本非常重要。建议统一版本,避免出错,无处下手。我这里选择了7.1.0 版本。
ElasticSearch的介绍和安装
ElasticSearch的介绍和安装在之前的文章文章中已经讲过了,这里不再赘述。您可以点击以下链接查看:
全文搜索引擎 Elasticsearch 入门:集群构建
如果您已经了解并安装 Elasticsearch,那么请跟随我进行下一步:了解并安装 Kibana。
Kibana 介绍和安装
这部分主要讲解如何下载安装Kibana,以及如何安装Kibana插件,并对Kibana界面做一个简单的介绍。
首先我们来看看Kibana是什么?
Kibana 是什么?
Kibana 是一个为 Elasticsearch 设计的开源分析和可视化平台。您可以使用 Kibana 搜索、查看存储在 Elasticsearch 索引中的数据并与之交互。您可以轻松实现高级数据分析和可视化,以图标的形式显示。
简单了解了 Kibana 之后,让我们来到 Kibana 下载网站,目前使用的是 Windows 系统,所以下载 Windows 版 Kibana 下载包 kibana-7.1.0-windows -x86_64.zip。
运行 Kibana
下载完成后,解压到本地。如果需要自定义 Kibana,可以编辑 config 目录下的 kibana.yml 文件。在运行 Kibana 之前,需要运行 ElasticSearch(以下简称 ES),因为 Kibana 是基于 ES 的。现在进入 Kibana 可以通过打开 bin 目录下的 kibana.bat 来运行。现在我们打开浏览器。Kibana运行在5601端口,所以打开:5601,打开后会出现如下页面:
导入样本数据,查看仪表盘
进入首页后,会提示我们添加一些测试数据。在开箱即用的 Kibana 版本中,ES 为我们准备了三个样本数据,电子商务网站 订单,航空公司航班记录,以及 WEB 网站 的日志,我们可以单击添加数据以添加它们。添加完成后,我们可以打开Dashboards界面,可以看到系统已经为我们创建了一个带有数据的Dashboard。
首先是电子商务公司的盈利报告。我们可以打开看看:
在Dashboard中,我们可以将多组可视化结果整合到一个页面中,然后提供搜索查询或者点击可视化结果中的某个元素来指定过滤条件,从而实现结果过滤。Dashboard 可以帮助我们更全面的了解整个日志。内容,并将每个视觉结果与日志相关联。以上是 Kibana 的 Dashboard 功能。
开发工具
接下来,我将介绍 Dev Tools,Kibana 中非常有用的工具。实际上,在 Kibana 中执行 ES 中的一些 API 很容易。比如我们上面提到的检测哪些节点在运行:GET /_cat/nodes?v,这样我们就可以在Kibana中运行ES命令了。
另外Kibana的Dev Tools还有很多快捷菜单操作,比如Ctrl+/查看API帮助文档,大家可以自行探索。
安装和查看插件
Kibana 可以在 Kibana 中提供一些特定的应用或通过插件增强图表显示的功能。Kibana 安装插件与 ES 非常相似。
输入 kibana-plugin install kibana-plugin install 下载 LogTrail 插件。
在cmd中输入kibana-plugin list查看本机安装的Kibana插件。
如果要删除插件,可以使用kibana-plugin remove logtrail 命令删除插件。
至此,我们已经下载安装了 Kibana,简单介绍了 Kibana 的主要功能,也介绍了 Dev Tools。你可以自己在当地练习。
目前是ELK三兄弟中的最后一个:Logstash,让我们一起学习。
Logstash 介绍和安装
这部分主要是下载安装Logstash,通过Logstash将测试数据集导入ES。
闲话少说,我们先来了解一下Logstash是什么?
什么是 Logstash?
Logstash 是一个开源的服务器端数据处理管道,可以同时转换来自多个来源的数据采集,然后将数据发送到您喜欢的存储库。
Logstash 可以动态地采集,转换和传输数据,无论格式或复杂程度如何。使用 Grok 从非结构化数据中推导出结构,从 IP 地址解码地理坐标,匿名化或排除敏感字段,并简化整体处理过程。
数据往往以各种形式存在于许多系统中,分散或集中。Logstash 支持多种输入选项,可以同时从多个常见来源捕获事件,并且可以以连续流的方式轻松检索您的日志、指标、Web 应用程序、数据存储和各种 AWS 服务。采集数据。
了解之后,让我们下载安装Logstash。
安装 Logstash
进入Logstash官网,进入下载页面。下载时注意与ES和Kibana版本一致。这里下载的版本是7.1.0版本logstash-7.1.0.zip。
下载后解压,或者进入conf目录修改logstash.conf进行配置。运行时可以指定配置文件logstash -f logstash.conf进行数据插入和转换。
安装完成后,我们使用Logstash将数据导入ES。
使用 Logstash 导入 ES
我们导入测试数据集,首先修改logstash.conf文件,内容为:
input {
file {
path => ["D:/SoftWare/logstash-7.1.0/csv/movies.csv"]
start_position => "beginning"
sincedb_path => "D:/SoftWare/logstash-7.1.0/csv/null"
}
}
filter {
csv {
separator => ","
columns => ["id","content","genre"]
}
mutate {
split => { "genre" => "|" }
remove_field => ["path", "host","@timestamp","message"]
}
mutate {
split => ["content", "("]
add_field => { "title" => "%{[content][0]}"}
add_field => { "year" => "%{[content][1]}"}
}
mutate {
convert => {
"year" => "integer"
}
strip => ["title"]
remove_field => ["path", "host","@timestamp","message","content"]
}
}
output {
elasticsearch {
hosts => "http://localhost:9200"
index => "movies"
document_id => "%{id}"
}
stdout {}
}
测试数据集来自Movielens:,你可以去下载。根据你下载的测试文件的路径修改配置文件中的路径。另外,配置文件的逻辑会在以后的文章中说明。
现在执行命令logstash -f logstash.conf 将数据导入ES。当看到数据打印到控制台时,数据也正在写入ES中。
至此,我们已经成功安装了Logstash,并通过Logstash将测试数据集写入ES,我们的ELK实时日志分析平台就搭建完成了。
添加
将测试数据集通过Logstash写入ES后,小伙伴们会发现电影索引状态是*敏*感*词*的,别着急,*敏*感*词*表示有shard的副本没有分配。
因为本地机器上只启动了一个节点,并且电影的索引设置了一个主分片和一个副本分片,所以不能在一个节点上分配主分片和从分片。
解决方法:修改index设置,replica设置为0,或者在集群中增加一个节点,状态会变成green。
总结
本文主要是了解ELK是什么,然后通过实际操作和大家一起搭建一个ELK日志分析平台。施工过程中如有问题,欢迎留言讨论。
如果ELK安装包或测试数据集下载速度慢,可以在【吴佩轩】公众号回复elk资料获取。
参考
Elasticsearch核心技术与实战