前言

Elastic Stack 7.3 基础与实践

1. 课程介绍

2. 学完能够做什么

对 Elastic Stack 整体框架和组件有个深入的理解

能够对 Elasticsearch 进行常见的操作和管理

可以实现对常见日志的收集,查看

组件介绍

1. 弹性堆栈介绍

近年来,随着网络,移动设备,社交网络,博客的出现,创造了大量数据,这些新数据源创建的数据无法使用传统的数据存储技术(通常是关系数据库)进行处理。

进而,最近几年出现了许多实现大规模数据的数据存储,比如 Hadoop 生态系统项目,几个 NoSQL 数据库以及搜索和分析引擎,如 Elasticsearch 。

2. 弹性堆栈的组件

Elastic Stack 是一个丰富的生态组件,可用作完整的搜索和分析堆栈。它的主要组件有:Kibana,LogStash,Beats,X-Pack和Elasticsearch ,如下图,但在实际解决方案中,并非包含所有组件。

(1)Elastic Cloud

Elastic Cloud是基于云的,托管设置弹性堆栈组件。该服务由Elastic(https://www.elastic.co/ )提供 。Elastic公司为Elastic Stack组件提供服务,包括培训,开发,支持和云托管。

除了Elastic Cloud之外,Elasticsearch还提供其他托管解决方案 ,比如(AWS)。Elastic Cloud的优势在于它由Elasticsearch的原始创建者和其他Elastic Stack组件开发者维护。

(2)Beats

Beats 是一个开放的轻量级数据发货人。它的作用是对Logstash的补充。Logstash是服务器端组件,而Beats是客户端角色。Beats包括一个核心库 libbeat,它提供了一个API,用于从源传输数据,配置输入选项实现日志记录收集。Beats安装在不属于服务器端组件(如Elasticsearch,Logstash或Kibana)的计算机上,有时也可以称为边缘节点

许多Beat组件已经由Elastic团队和开源社区构建。Elastic团队已经建立的Beats,包括 PacketbeatFilebeatMetricbeat,WinlogbeatAudiobeatHeartbeat

Filebeat是一个单用途Beat,用于将日志文件从服务器发送到集中式Logstash或Elasticsearch服务器。Metricbeat 是一个服务器监视代理程序,它定期从服务器上运行的操作系统和服务收集指标。

(3)Logstash

Logstash 有助于集中活动日志,指标或任何其他格式的数据。它可以在发送之前执行许多转换。它是Elastic Stack的关键组件,用于集中数据管道中的收集和转换过程。

Logstash是服务器端组件。它的作用是集中化以可扩展的方式从大量输入源收集数据,并将数据转换并发送到您选择的输出。通常,输出发送到Elasticsearch,但Logstash能够将其发送到各种输出。Logstash具有基于插件的可扩展体系结构。它支持三种类型的插件:输入插件,过滤插件和输出插件。Logstash拥有200多个受支持的插件,并且数量不断增加。

Logstash是一款出色的通用数据流引擎,可帮助构建实时,可扩展的数据流水线。

(4)Elasticsearch

Elasticsearch 是弹性堆栈的核心,用于存储数据,并以可扩展的方式提供搜索和分析功能。无需使用任何其它组件即可在搜索和分析方面为您的应用提供支持。

(5)Kibana

Kibana是Elastic Stack的可视化工具,它通常被称为弹性堆栈的窗口。它提供许多可视化,包括组合图,地图,折线图,时间序列等。只需单击几下即可构建可视化,并以交互方式探索数据。它允许您通过组合不同的可视化,与他人共享以及导出高质量报告来构建漂亮的仪表板。

Kibana还拥有管理和开发工具,使开发人员能够构建和测试REST API请求。

(6)X-Pack

X-Pack 为生产增加了必要的功能。 增加了安全性,监控,警报,报告,图形和机器学习功能。

1)安全

X-Pack中的安全插件增加了Elasticsearch和Kibana的身份验证和授权功能,以便只有经过授权的人才能访问数据,并且他们只能看到允许的数据。安全插件可以无缝地跨组件工作,保护对Elasticsearch和Kibana的访问。

安全扩展还允许您使用许可版本配置字段和文档级安全性。

[success] 在新的版本当中,X-Pack 基本 License(免费长久有效) 已经提供了基本安全特性

2)监控

X-Pack中的监视组件允许您监视Elasticsearch集群和Kibana。主要监视群集,节点和索引级别度量标准。监控插件维护性能历史记录,因此您可以将当前指标与过去的指标进行比较。它还具有容量规划功能。

3)报告

X-Pack中的报告插件允许用于从Kibana可视化生成可打印的高质量报告。可以将报告安排为定期运行或按事件运行

4)警报

X-Pack 具有多种报警方式,如 Mail , Slack,Hipchat和 PagerDuty。

5)图表

图表让您探索在关系中的数据。图表可以显示共享公共属性(如人员,地点,产品或首选项)的实体之间的关系。

图表由图谱API和Kibana中的UI组成,可让您探索此关系。在幕后,它利用分布式查询,大规模索引以及Elasticsearch的相关性功能。

6)机器学习

X-Pack有一个机器学习模块,用于学习来自数据中的模式。机器学习是一个广阔的领域,包括监督学习,无监督学习,强化学习以及其他专业领域,如深度学习。X-Pack中的机器学习模块仅限于时间序列数据中的异常检测,这属于机器学习的无监督学习分支。

产品订阅

1. 授权产品分类

参考链接:https://www.elastic.co/cn/subscriptions

Elastic Cloud : 软件即服务(SAAS), 不需要安装,使用什么服务,就购买什么服务,比如 Elasticsearch 服务,应用搜索服务,网站搜索服务.

Elastic 就地部署: 独立型,也就是自己安装部署,然后购买 License 进行授权.

Elastic 就地部署: 编排, 使用编排工具直接进行部署,比如Elastic Cloud EnterpriseElastic Cloud on Kubernetes(由 Elasticsearch 的开发企业 Elastic 提供的编排工具套件),简化运营并提高工作效率。并且支持直接在阿里云腾讯云进行部署.

2. Elastic 就地部署(独立型)

独立型又分为四个级别:

  • 开源
  • 基础 (永远免费)
  • 黄金级
  • 白金级

具体功能参考: https://www.elastic.co/cn/subscriptions

3. Elastic 就地部署(编排工具)

编排工具有两种方式:

  • Elastic Cloud Enterprise:它只有企业级
  • Elastic Cloud on Kubernetes : 有两种级别,分别为 基础级(免费) 和 企业级

具体价格,可联系他们.

使用场景

随着更多的插件被添加到现有组件中,弹性堆栈有了更多的用途和使用案例。,一些常见的用例:

  • 日志和安全分析
  • 产品搜索
  • 指标分析
  • 网站搜索

1. 日志和安全分析

Elasticsearch,Logstash和Kibana 的组合使得Elastic成为可能堆叠一个优秀的堆栈,用于聚合和分析日志。

应用程序支持团队在管理部署数十或数百台服务器上的大量应用程序时面临巨大挑战。应用程序基础结构可以包含以下组件:

  • web服务器
  • 应用服务器
  • 数据库服务器
  • 消息代理

通常,每个服务器都有多个实例。如果出现错误或生产问题,支持团队必须登录到各个服务器并查看错误。登录到单个服务器并查看原始日志文件效率很低。Elastic Stack提供了一个完整的工具集,用于收集,集中,分析,可视化,警报和报告错误。每个组件都可用于解决此问题,如下所示:

  • Beats框架:特别是 Filebeat ,可以作为轻量级代理允许,以收集和转发日志。
  • Logstash:从 Beats 接收事件,并在将每个日志发送到 Elasticsearch 集群之前对其进行解析和转换。
  • Elasticsearch:索引日志。它支持对已解析日志的搜索和分析。
  • Kibana:允许您基于错误,警告和其它信息日志创建可视化。
  • X-Pack:提供一种保护解决方案,配置警报,获取报告以及分析数据中的关系。

如您所见,您可以使用Elastic Stack获得完整的日志聚合和监控解决方案。

2. 产品搜索

产品搜索涉及数千或数万种产品中最相关的产品,并且在其他不太相关的产品之前,将最相关的产品放在列表的前面。您可以直接将此问题与电子商务网站联系起来,这些网站销售大量产品。

Elasticsearch的全文和相关搜索功能可以找到最匹配的结果。在第一页上展示最佳匹配具大价值的商品,因为它增加了客户实际购买产品的机会。想象一下,客户正在搜索电脑,第一页上的结果显示了不同的电脑整机,然后关于电脑的一些相关配件也都显示了出来。由Lucene支持的文本分析功能以及Elasticsearch添加的创新确保搜索显示 内存,硬盘,CPU 和主板是最佳匹配。

然而,该问题不仅限于电子商务网站。任何需要从数百万或数十亿的项目中找到最相关项目的应用程序都可以使用Elasticsearch来解决此问题。

3. 指标分析

Elastic Stack具有出色的分析功能和丰富的聚合API。这使其成为分析具有大量指标的数据的完美工具。度量标准数据由数值组成,而非文档和网页等非结构化文本。一些例子是生成的数据通过传感器,物联网(IoT)设备,移动设备生成的指标,服务器,虚拟机,网络路由器,交换机等。名单是无止境的。

度量数据通常也是时间序列; 也就是说,在一段时间内记录价值或量度。记录的度量标准通常与某个实体相关。例如,为具有特定标识符的特定传感器设备记录温度读数(其为度量)。还可以包括传感器装置的位置,即经度和纬度。

Elasticsearch和Kibana允许沿不同维度切片和切割度量数据,以深入了解您的数据。Elasticsearch在处理时间序列和地理空间数据方面非常强大,这意味着您可以在线图和区域图上绘制汇总数百万个指标的指标。您还可以在地图上进行地理空间分析。

4. 网站搜索

对于您的网站,Elasticsearch可以充当搜索引擎,并在您网站的整个内容中执行类似Google的搜索。GitHub,维基百科等等其他平台都使用Elasticsearch为其搜索提供支持。

可以利用Elasticsearch构建内容聚合平台。什么是内容聚合器或内容聚合平台?内容聚合器抓取多个网站,索引网页,并在底层内容上提供搜索功能。这是构建特定于域的聚合平台的强大方法。

Apache Nutch,一个开放的源码,大型网络爬虫,由Apache Lucene的原始创建者Doug Cutting创建。Apache Nutch对Web进行爬网,解析HTML页面,存储它们,还构建索引以使内容可搜索。Apache Nutch支持为其搜索引擎索引到Elasticsearch或Apache Solr。

很明显,Elastic Stack有许多实际用例。Elastic Stack是一个平台,拥有一整套用于构建端到端搜索和分析解决方案的工具。对于开发人员,架构师,商业智能分析师和系统管理员来说,它是一个非常平易近人的平台。可以将Elastic Stack解决方案组合在一起,几乎没有编码,只有配置。同时,Elasticsearch可以自定义,也就是说,开发人员和程序员可以使用其丰富的编程语言支持和REST API构建功能强大的应用程序。