ELK(Elasticsearch , Logstash, Kibana)的使用

ELK(Elasticsearch , Logstash, Kibana)的使用

  • 环境准备含jdk1.8及以上、node.js
官方文档

Elasticsearch官网地址: https://www.elastic.co/products/elasticsearch

官方中文文档地址: https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html

一、ElasticSearch是什么?

	官方的看不懂咱也不理解,总之它就是一个分布式搜索引擎,至于能干什么呢?我们都在淘宝京东买过东西,当我们在综合搜索框进行搜索商品时,它能够进行分词搜索,从而检索出我们所输入的关键词/字所对应的上万商品。就这一点上关系型数据库例如MySQL是完全做不到的,NoSQL也比较乏力,它不支持海量的大数据搜索,最完美的还是当下比较火的ElasticSearch,业内叫ES。

ElasticSearch、elasticsearch-head、kibana下载

ElasticSearch官网:https://www.elastic.co/downloads/elasticsearch

可视化工具kibana官网:https://www.elastic.co 历史版本

客户端工具elasticsearch-head下载:

如果不想下载最新版的,可以点击“past releases”选择过去的版本。我这里下载的是7.6.1版本的。

二、windows

1、解压

直接解压使用
  • 跨域配置,在config目录下的elasticsearch.yml里加入

    http.cors.enabled: true
    http.cors.allow-origin: "*"
    
  • jvm配置(根据自身电脑配置选择配置),在config目录下的jvm.options修改

    -Xms256m
    -Xmx256m
    
  • 有以下几个目录

    目录配置文件描述
    bin放置脚本文件,如启动脚本 elasticsearch, 插件安装脚本
    configelasticserch.ymlelasticsearch 配置文件,如集群配置、jvm 配置
    jdkjava 运行环境
    datapath.data数据持久化文件
    lib依赖的相关类库
    logspath.log日志文件
    modules所有 ES 模块
    plugins已安装的插件

2、启动

进入elasticsearch的bin目录,双击elasticsearch.bat启动服务,默认端口是9200,启动完成之后,在浏览器中访问http://localhost:9200,出现如下图所示内容表明Elasticsearch启动成功。
在这里插入图片描述

3、安装kibana(ES可视化工具)

  • 同样解压即可、更改中文配置

    在D:\kibana\kibana-7.6.1-windows-x86_64\config目录下的Kibana.yml文件中加入配置

    i18n.locale:”zh-CN”
    
  1. 进入bin目录运行kibana.bat即可

  2. 浏览器访问http://localhost:5601

4、安装elasticsearch-head-master

解压后进入目录,打开命令框分别执行以下命令

npm install
nmp run start

浏览器访问 http://localhost:9100

在这里插入图片描述

5.windows正式使用

  • 给elasticsearch安装ik插件

    下载地址:https://github.com/medcl/elasticsearch-analysis-ik

  • 安装

    在D:\es\elasticsearch-7.6.1\plugins目录下新建ik目录将下载好的插件解压在ik目录下

  • 在kinana的DevTools控制台写

    GET _analyze
    {
      "analyzer": "ik_smart",
      "text": "斗罗大陆好看"
    }
    GET _analyze
    {
      "analyzer": "ik_max_word",
      "text": "斗罗大陆好看"
    }
    
  • 执行后会发现右边出现如下json数据

    {
      "tokens" : [
        {
          "token" : "斗",
          "start_offset" : 0,
          "end_offset" : 1,
          "type" : "CN_CHAR",
          "position" : 0
        },
        {
          "token" : "罗",
          "start_offset" : 1,
          "end_offset" : 2,
          "type" : "CN_CHAR",
          "position" : 1
        },
        {
          "token" : "大陆",
          "start_offset" : 2,
          "end_offset" : 4,
          "type" : "CN_WORD",
          "position" : 2
        },
        {
          "token" : "好看",
          "start_offset" : 4,
          "end_offset" : 6,
          "type" : "CN_WORD",
          "position" : 3
        }
      ]
    }
    

    这就是ES强大的关键字搜索功能。

  • rest风格

    rest操作:

    GET:获取对象的当前状态;
    PUT:改变对象的状态;
    POST:创建对象;
    DELETE:删除对象;
    HEAD:获取头信息。
    
  • 具体操作说明

    资源一组资源的URI,比如:http://example.com/res/单个资源的URI,比如:http://example.com/res/123
    GET列出URI,以及该资源组中每个资源的详细信息(后者可选)获取指定的资源的详细信息,格式可以自选一个合适的网络媒体类型(比如:XML、JSON等)
    PUT使用给定的一组资源替换当前整组资源替换/创建指定的资源。并将其追加到相应的资源组中。
    POST在本组资源中创建/追加一个新的资源。该操作往往返回新的URL把指定的资源当做一个资源组,并在其下创建/追加一个新的元素,使其隶属于当前资源。
    DELETE删除整组资源删除指定的元素

6.索引操作

  • 创建一个索引

    put  /索引名/类型名/文档id
    {
    请求体
    }
    

    在这里插入图片描述
    在head中浏览
    在这里插入图片描述
    我们发现创建了一个test1数据库并添加了一条数据。

  • 创建数据库规则

PUT /test2
{
  "mappings": {
    "properties": {
      "name":{
        "type": "text"
      },
      "age":{
        "type": "long"
      },
      "birthdy":{
        "type": "date"
      }
    }
  }
}
  • 获取信息
GET test2

在这里插入图片描述

  • 创建并修改值
PUT /test3/_doc/1
{
  "name":"寒笑",
  "age":3,
  "birthdy":"1999-03-03"
}
POST /test3/_doc/1/_update
{
  "doc":{
    "name":"寒笑123"
  }
}

在这里插入图片描述

  • 删除索引
DELETE test1

7.文档操作(重点)

添加数据

PUT /hanxiao/user/1
{
  "name":"寒笑1",
  "age":4,
  "desc":"近水楼台先得月",
  "tags":["大长腿","技术宅","太帅"]
}

在这里插入图片描述

获取数据

GET hanxiao/user/1

返回结果

#! Deprecation: [types removal] Specifying types in document get requests is deprecated, use the /{index}/_doc/{id} endpoint instead.
{
  "_index" : "hanxiao",
  "_type" : "user",
  "_id" : "1",
  "_version" : 1,
  "_seq_no" : 0,
  "_primary_term" : 1,
  "found" : true,
  "_source" : {
    "name" : "寒笑1",
    "age" : 4,
    "desc" : "近水楼台先得月",
    "tags" : [
      "大长腿",
      "技术宅",
      "太帅"
    ]
  }
}

修改数据

POST hanxiao/user/1/_update
{
  "doc":{
    "name":"寒笑半步巅"
  }
}

简单精准查询

GET hanxiao/user/_search
{
  "query": {
    "match": {
      "name": "寒笑"
    }
  },
  "_source": ["name","desc"]
}

返回结果

#! Deprecation: [types removal] Specifying types in search requests is deprecated.
{
  "took" : 47,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 1,
      "relation" : "eq"
    },
    "max_score" : 1.6285465,
    "hits" : [
      {
        "_index" : "hanxiao",
        "_type" : "user",
        "_id" : "1",
        "_score" : 1.6285465,
        "_source" : {
          "name" : "寒笑半步巅",
          "desc" : "近水楼台先得月"
        }
      }
    ]
  }
}

整合springboot

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值