• Elasticsearch学习笔记2


    Elasticsearch is a search engine based on Lucene library.  It provides a distributed, multitenant-capable full-text search engine with an HTTP web interface and schema-free JSON documents. Elasticsearch is developed in Java and is released as open source under the terms of the Apache License. Official clients are available in Java.NET (C#), PHPPythonApache GroovyRuby and many other languages.

     Elasticsearch是一个基于Lucene的开源搜索服务,一个分布式多用户能力的全文搜索引擎,是当前流行的企业级搜索引擎,设计用于云计算中,能够达到准实时搜索。ELK是ElasticSearch,Logstash,Kibana的缩写,分别提供搜索,数据接入和可视化功能,构成了Elastic的应用栈。数据库搜索引擎有Elastic,Solr和Splunk等。

    Elastic

    准实时(NRT)

    Elasticsearch是一个准实时性的搜索平台,从数据索引到数据可以被搜索存在一定的时延。

    索引(Index)

    索引是有共同特性的文档的集合,索引有自己的名字,可以对索引执行搜索,更新,删除等操作。

    类型(Type)

    每个索引可以包含一个或者多个类型,类型可以看作一个索引数据的逻辑分组,通常我们会把拥有相同字段的文档定义为同一个类型。

    文档(Document)

    文档是索引信息的基本单元。Elastic中文档表现为JSON对象,文档物理存贮在索引中,并需要被制定一个类型。因为表现为JSON, 很自然的,文档是由一个个的字段(Feilds)组成,每个字段是一个名值对(Name Value Pair)

    评分(score)

    Elastic是基于Lucene构建的,所以搜索的结果会有一个打分。来评价搜索结果和查询的相关性。

    数据接入和获取

    Elastic栈使用Logstash和Beats来进行数据的消化和获取。

    Logstash用jruby实现,类似于一个数据管道,把输入的数据进行处理,变形,过滤,然后输出到其它地方。Logstash 设计了自己的 DSL,包括有区域,注释,数据类型(布尔值,字符串,数值,数组,哈希),条件判断,字段引用等。Logstash的数据管道包含三个步骤,Input,Filter和Output,每一步都可以通过plugin来扩展。另外Input和Output还支持配置Codecs,完成对输入输出数据的编解码工作。

    Logstash支持的常见的Input包含File,syslog,beats等。Filter中主要完成数据的变形处理,可以增删改字段,加标签,等等。作为一个开源软件,Output不仅仅支持ElasticSearch,还可以和许多其它软件集成和目标,Output可以是文件,graphite,数据库,Nagios,S3,Hadoop等。

    在实际运用中,logstash 进程会被分为两个不同的角色。运行在应用服务器上的,尽量减轻运行压力,只做读取和转发,这个角色叫做 shipper;运行在独立服务器上,完成数据解析处理,负责写入 Elasticsearch 的角色,叫 indexer。

     

    logstash 作为无状态的软件,配合消息队列系统,可以很轻松的做到线性扩展。Beats是 Elastic 从 packetbeat 发展出来的数据收集器系统。beat 收集器可以直接写入 Elasticsearch,也可以传输给 Logstash。其中抽象出来的 libbeat,提供了统一的数据发送方法,输入配置解析,日志记录框架等功能。

    Kibana数据展现和可视化

    Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。

    架构

    Elastic Stack

    ELK是一套栈,Logstash提供数据的消化和获取,Elasticsearch对数据进行存储,索引和搜索,而Kibana提供数据可视化和报表的功能。

     

  • 相关阅读:
    __dict__和dir()的区别:未完
    [leetcode] Subsets II
    [leetcode] Decode Ways
    [leetcode] Gray Code
    [leetcode] Merge Sorted Array
    [leetcode] Partition List
    [leetcode] Scramble String
    [leetcode] Maximal Rectangle
    [leetcode] Remove Duplicates from Sorted List II
    [leetcode] Remove Duplicates from Sorted List
  • 原文地址:https://www.cnblogs.com/jeshy/p/10518754.html
Copyright © 2020-2023  润新知