Elastic Stack 是一系列开源产品的合集,包括 Elasticsearch、Kibana、Logstash 以及 Beats 等等,能够安全可靠地获取任何来源、任何格式的数据,并且能够实时地对数据进行搜索、分析和可视化。
一、Elasticsearch、Splunk、Solr、Lucene
Elasticsearch是一款基于Lucene的开源分布式搜索分析引擎的产品。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
  • 近实时(Near Real Time);
  • 分布式存储、搜索和分析引擎;
大数据的搜索平台已经成为了众多企业的标配,Elasticsearch、Splunk(商业上市公司)、Solr(Apache开源项目)是其中最为优秀和流行的选择。
 
Splunk 是大数据领域第一家在纳斯达克上市公司,Splunk提供一个机器数据的引擎。使用 Splunk 可收集、索引和利用所有应用程序、服务器和设备(物理、虚拟和云中)生成的快速移动型计算机数据 。从一个位置搜索并分析所有实时和历史数据。 使用 Splunk 处理计算机数据,可让您在几分钟内(而不是几个小时或几天)解决问题和调查安全事件。监视您的端对端基础结构,避免服务性能降低或中断。以较低成本满足合规性要求。关联并分析跨越多个系统的复杂事件。获取新层次的运营可见性以及 IT 和业务智能。
 
Solr是Apache Lucene项目的开源企业搜索平台。其主要功能包括全文检索、命中标示、动态聚类、数据库集成,以及富文本(如Word、PDF)的处理。Solr是高度可扩展的,并提供了分布式搜索和索引复制。Solr是用Java编写、运行在Servlet容器(如 Apache Tomcat 或Jetty)的一个独立的全文搜索服务器。 Solr采用了 Lucene Java 搜索库为核心的全文索引和搜索,并具有类似REST的HTTP/XML和JSON的API。
 
根据最新的数据库引擎排名显示,Elasticsearch、Splunk、Solr分别占据了搜索引擎(Search engine)的前三位。
在搜索引擎领域,上述3个产品的流行趋势图,如下所示。Elasticsearch 一直向上,超出Splunk和Solr。
从趋势上来看,Elasticsearch和Splunk上升明显,Elasticsearch更是表现出了非常强劲的势头。
Lucene 搜索引擎库
Elasticsearch和Solr都使用Lucene作为内部引擎,但是在使用Elasticsearch或Solr做全文搜索时,只需要使用统一开发好的API即可,而不需要了解其背后复杂的Lucene的运行原理。
下面简要了解一下Lucene:
  • 基于Java语言开发的搜索引擎库;
  • 创建于1999年,2005年成为Apache顶级开源项目;
  • Lucene 具有高性能、易扩展的优点;
 
二、Elasticsearch分布式架构
Elasticsearch为分布式设计的,有很好的扩展性,在一个典型的分布式配置中,每一个节点(node)可以配制成不同的角色,如下图所示。
  • Client Node,负责API和数据访问的节点,不存储/处理数据。
  • Data Node,负责数据的存储和索引。
  • Master Node, 管理节点,负责Cluster中节点的协调,不存储数据。
每一种角色可以通过Elasticsearch的配置文件或者环境变量来配置。每一种角色都可以很方便的扩展,因为Elasticsearch采用了对等性的设计,也就是所有的角色是平等的。Master Node会进行Leader Election,其中有一个是领导者。这样的设计使得集群环境的伸缩性非常好,尤其是在容器环境中,例如Docker Swarm或者Kubernetes中使用。
集群规模可以从单个节点扩展到数百个节点,具有高可用和水平扩展的特性。
 
Elasticsearch 支持多种方式集成接入
  • 多种编程语言的类库,如Java、.Net、Python、Ruby、PHP、Groovy、Perl等等;
  • 提供了RESTful API 和 TransportClient API,建议使用RESTful API;
 
三、Logstash 数据处理管道
Logstash 是 Elastic Stack 的中央数据流引擎,用于收集、丰富和统一所有数据,而不管格式或模式。当Logstash与Elasticsearch,Kibana,及 Beats 共同使用的时候便会拥有特别强大的实时处理能力。
  • 开源的服务器端数据处理管道,支持从不同来源采集数据,转换数据,并将数据发送到不同的存储库中。
  • Logstash 创建于 2009年,最初用来做日志的采集与处理。
  • 2013年,Logstash被Elasticsearch 收购。
Logstash 能够动态地转换和解析数据,Logstash 特性如下:
  • 实时解析和转换数据,如从IP地址解析出地理坐标,将PII(personally identifiable information,个人验证信息)数据匿名化,完全排除敏感字段。
  • 可扩展性,有200多个插件,如日志、数据库等等。
  • 可靠性和安全性,Logstash会通过持久化队列来保证至少将运行中的事件送达一次,并支持数据传输加密。
 
四、Kibana 数据可视化分析
Kibana是一个开源的分析和可视化平台,设计用于和Elasticsearch一起工作。
  • Kibana名字的含义 = Kiwifruit(奇异果)+ Banana(香蕉)
  • 数据可视化工具,帮助用户解开对数据的任何疑问。
  • 基于Elasticsearch和Logstash工具,2013年加入Elastic公司。
 
五、Elastic的发展历程
2015年3月收购Elastic Cloud,提供Cloud服务。
2015年3月收购PacketBeat。
2016年9月收购PreAlert - Machine Learning异常检测。
2017年6月收购Opbeat进军APM。
2017年11月收购Saas厂商Swiftype,提供网站和App搜索。
2018年X-Pack开源。
 

Elastic Stack核心产品介绍-Elasticsearch、Logstash和Kibana的更多相关文章

  1. Manage Spring Boot Logs with Elasticsearch, Logstash and Kibana

    下载地址:https://www.elastic.co/downloads When time comes to deploy a new project, one often overlooked ...

  2. (转)How to Use Elasticsearch, Logstash, and Kibana to Manage MySQL Logs

    A comprehensive log management and analysis strategy is vital, enabling organizations to understand ...

  3. ElasticSearch+Logstash+Filebeat+Kibana集群日志管理分析平台搭建

    一.ELK搜索引擎原理介绍 在使用搜索引擎是你可能会觉得很简单方便,只需要在搜索栏输入想要的关键字就能显示出想要的结果.但在这简单的操作背后是搜索引擎复杂的逻辑和许多组件协同工作的结果. 搜索引擎的组 ...

  4. elasticsearch+logstash+redis+kibana 实时分析nginx日志

    1. 部署环境 2. 架构拓扑 3. nginx安装 安装在192.168.176.128服务器上 这里安装就简单粗暴了直接yum安装nginx [root@manager ~]# yum -y in ...

  5. 利用ansible-playbook一键部署ELK(ElasticSearch,logstash and kibana)

    一.部署前环境介绍: es集群5台(es01,es02,es03,es04,es05),logstash服务器1台(logstash2),kibana服务器1台(kibana2),模拟apache服务 ...

  6. (转)开源分布式搜索平台ELK(Elasticsearch+Logstash+Kibana)入门学习资源索引

    Github, Soundcloud, FogCreek, Stackoverflow, Foursquare,等公司通过elasticsearch提供搜索或大规模日志分析可视化等服务.博主近4个月搜 ...

  7. 开源分布式搜索平台ELK(Elasticsearch+Logstash+Kibana)入门学习资源索引

    from:  http://www.w3c.com.cn/%E5%BC%80%E6%BA%90%E5%88%86%E5%B8%83%E5%BC%8F%E6%90%9C%E7%B4%A2%E5%B9%B ...

  8. ELK(Elasticsearch 、 Logstash以及Kibana)

    配置日志收集系统 ELK需求背景:业务发展越来越庞大,服务器越来越多各种访问日志.应用日志.错误日志量越来越多,导致运维人员无法很好的去管理日志开发人员排查问题,需要到服务器上查日志,不方便运营人员需 ...

  9. 使用ELK(Elasticsearch + Logstash + Kibana) 搭建日志集中分析平台实践--转载

    原文地址:https://wsgzao.github.io/post/elk/ 另外可以参考:https://www.digitalocean.com/community/tutorials/how- ...

随机推荐

  1. jackson json转实体对象 com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException

    Jackson反序列化错误:com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field的解 ...

  2. ABAP 7.4 新语法-内嵌生命和内表操作(转)

    转自:https://www.cnblogs.com/mingdashu/p/6744637.html ABAP 7.4 新语法-内嵌生命和内表操作   1.内嵌声明 2.内表操作 3.opensql ...

  3. SSM(七)在JavaWeb应用中使用Redis

    前言 先来看一张效果图: 作用就是在每次查询接口的时候首先判断Redis中是否有缓存,有的话就读取,没有就查询数据库并保存到Redis中,下次再查询的话就会直接从缓存中读取了.Redis中的结果:之后 ...

  4. java基础(29):JDBC、DBUtils

    1. JDBC 1.1 JDBC概述 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问 ...

  5. java基础(20):Map、可变参数、Collections

    1. Map接口 1.1 Map接口概述 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同,如下图. Collection中的集合,元素是孤 ...

  6. Python爬取《冰雪奇缘2》豆瓣影评

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 刘铨@CCIS Lab PS:如有需要Python学习资料的小伙伴可 ...

  7. C#中对文件File常用操作方法的工具类

    场景 C#中File类的常用读取与写入文件方法的使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99693983 注: 博客 ...

  8. 如何将HTML页面中的文本设置首行缩进

    text-indent属性介绍 属性值单位 描述 em 比如:1em 就代表缩进1个字,2em缩进2个字...... 由于简单我就不过多的介绍了直接上代码了哦,注意:text-indent属性的值支持 ...

  9. JavaScriptCore

    在移动的混合开发中经常用到OC与JS的交互,就涉及iOS中的JavaScriptCore类,下面终结如下 JavaScriptCore中的类 在项目中引入JavaScriptCore后,链到头文件中, ...

  10. liteos动态加载(十三)

    1. 概述 1.1 基本概念 动态加载是一种程序加载技术. 静态链接是在链接阶段将程序各模块文件链接成一个完整的可执行文件,运行时作为整体一次性加载进内存.动态加载允许用户将程序各模块编译成独立的文件 ...