zoukankan      html  css  js  c++  java
  • Elastic Stack生态圈

     Elastic Stack介绍

          在Elastic Stack之前我们听说过ELK,ELK分别是Elasticsearch,Logstash,Kibana这三款软件在一起的简称,在发展的过程中又有新的成员Beats的加入,就形成了Elastic Stack。

                                         Elastic Stack生态圈

    在Elastic Stack生态圈中Elasticsearch作为数据存储和搜索,是生态圈的基石,Kibana在上层提供用户一个可视化及操作的界面,Logstash和Beat可以对数据进行收集。在上图的右侧X-Pack部分则是Elastic公司提供的商业项目。

    Elastic Stack的组成部分

      1. Logstash

                  是开源的服务器端数据收集管道,支持从不同的数据源采集数据,转换数据,最后将数据发送到不同的存储库中。后被Elastic公司在2013年收购,成为Elastic公司里专处理数据管道的部分。

        Logstash具有如下特性:

          1)可以实时解析和转换数据,比如从IP地址转换出地理坐标,将PII数据匿名话,排除一些敏感字段。

          2)可扩展,拥有可扩展的插件生态系统,目前市面上具有200多个插件(日志/数据库/Archsigh/Netflow)。

          3)可靠性、安全性。Logstash会通过持久化队列来保证至少将运行中的事件送达一次,同时将数据进行传输加密。

          4)监控。

           2. Kibana

                  Kibana是一款数据可视化工具,最早是基于Logstash来创建的一个工具,在2013年时候也是被Elastic公司收购。目前Kibana最常用就是以图表的形式呈现数据,并且具有可扩展的用户界面,配置和管理ElasticSearch。

        Kibana特点:

             1)Kibana可以提供各种可视化的图表;

             2)可以通过机器学习的技术,对异常情况进行检测,用于提前发现可疑问题;

       3. ElasticSearch:

        ElasticSearch是对数据进行搜索、分析和存储,其是基于JSON的分布式搜索和分析引擎,专门为实现水平可扩展性、高可靠性和管理便捷性而设计的。

        它的实现原理主要分为以下几个步骤:

          1)首先用户将数据提交到ElasticSearch数据库中;

          2)再通过分词控制器将对应的语句分词;

          3)将分词结果及其权重一并存入,以备用户在搜索数据时,根据权重将结果排名和打分,将返回结果呈现给用户;

     

     docker中运行ElasticSearch Kibana及Cerebro

        cerebro是ElasticSearch一款监控工具,它的github地址:https://github.com/lmenezes/cerebro/releases。下吗使用docker及docker-compose来安装这些软件。

        docker-compose.yaml文件内容如下

    version: '2.2'
    services:
      cerebro:
        image: lmenezes/cerebro:0.8.3
        container_name: cerebro
        ports:
          - "9000:9000"
        command:
          - -Dhosts.0.host=http://elasticsearch:9200
        networks:
          - es7net
      kibana:
        image: docker.elastic.co/kibana/kibana:7.1.0
        container_name: kibana7
        environment:
          - I18N_LOCALE=zh-CN
          - XPACK_GRAPH_ENABLED=true
          - TIMELION_ENABLED=true
          - XPACK_MONITORING_COLLECTION_ENABLED="true"
        ports:
          - "5601:5601"
        networks:
          - es7net
      elasticsearch:
        image: docker.elastic.co/elasticsearch/elasticsearch:7.1.0
        container_name: es7_01
        environment:
          - cluster.name=geektime
          - node.name=es7_01
          - bootstrap.memory_lock=true
          - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
          - discovery.seed_hosts=es7_01,es7_02
          - cluster.initial_master_nodes=es7_01,es7_02
        ulimits:
          memlock:
            soft: -1
            hard: -1
        volumes:
          - es7data1:/usr/share/elasticsearch/data
        ports:
          - 9200:9200
        networks:
          - es7net
      elasticsearch2:
        image: docker.elastic.co/elasticsearch/elasticsearch:7.1.0
        container_name: es7_02
        environment:
          - cluster.name=geektime
          - node.name=es7_02
          - bootstrap.memory_lock=true
          - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
          - discovery.seed_hosts=es7_01,es7_02
          - cluster.initial_master_nodes=es7_01,es7_02
        ulimits:
          memlock:
            soft: -1
            hard: -1
        volumes:
          - es7data2:/usr/share/elasticsearch/data
        networks:
          - es7net
    
    
    volumes:
      es7data1:
        driver: local
      es7data2:
        driver: local
    
    networks:
      es7net:
        driver: bridge

    在本地环境一个空目录中,创建上面这个 docker-compose.yaml文件,然后在执行命令docker-compose up 来启动容器。

     启动好之后,我们在浏览器输入 http://localhost:5601/  来访问Kibana。

     

    在输入http://localhost:9000/ 来访问cerebro。

     登陆进去之后展示的就是cerebro的管理界面。

     

     下面在安装Logstash,这里我之前一篇文章有写关于Logstash的使用与安装 https://www.cnblogs.com/songgj/p/11183566.html,安装好之后在MovieLens上下载一些测试数据来填充到Elasticsearch中,

      (MovieLens数据集包含多个用户对多部电影的评级数据,也包括电影元数据信息和用户属性信息。)

     MovieLens地址 https://grouplens.org/datasets/movielens/

      

  • 相关阅读:
    性能测试流程
    性能测试关注的指标
    什么样的系统需要做性能测试
    python数据类型-列表
    python-数据类型-元组
    python自动化第二课
    python自动化第二课
    内存泄漏和内存溢出
    程序中必须知道的几种命名规范
    超级详细安装jmeter的教程(亲测)
  • 原文地址:https://www.cnblogs.com/songgj/p/10963150.html
Copyright © 2011-2022 走看看