zoukankan      html  css  js  c++  java
  • Elasticsearch 常用工具

    语法格式

    ​ Elasticsearch通过RESTful API和9200端口与其它语言驱动进行通信。

    ​ 它的主要格式如下,这里主要针对curl交互方式,特别繁琐:

    curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>’
    

    ​ VERB:HTTP请求方式,如GETPOSTPUTHEADDELETE等

    ​ PROTOCOL:http或者https

    ​ HOST:Elasticsearch中任意节点主机名,或者使用localhost代替本机节点

    ​ PORT:运行Elasticsearch HTTP服务的端口号,默认为9200

    ​ PATH:API终端路径,如_coun返回集群中的文档数量,它可能包含多个组件,例如_cluster/stats以及_nodes/stats/jvm

    ​ QUERY_STRING:任意可选的查询字符串参数,如?pretty将结果进行JSON格式化返回,使其更容易阅读

    ​ BODY:JSON格式请求体,用于POST/PUT/DELETE数据等

    交互方式

    ​ 常用的交互方式有以下三种:

    1. curl命令:
      • 较为繁琐
      • 较为复杂
      • 容易出错
      • 不用安装额外软件
    2. es-head工具:
      • 查看数据方便
      • 操作相对容易
      • 需要node环境
    3. kibana工具:
      • 查看数据及报表的格式丰富
      • 操作简单
      • 需要安装java环境和配置kibana

    ​ 此外,由于Elasticsearch是RESTful API的交互方式,也可使用postman工具与其进行交互。

    ​ 重要的一点是必须修改Elasticsearch配置文件,让其能够支持CORS跨域请求:

    vim /etc/elasticsearch/elasticsearch.yml
    
    # 添加:
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    

    ​ 最后别忘了重启Elasticsearch服务。

    Es-Head

    下载安装

    ​ 很久之前该工具是Elasticsearch内置的,但是在5.0后被移除,用于可视化Elasticsearch,通过它能够更加直观的查看数据信息、监控集群状态等。

    ​ 需要node.js环境支持,或者你也可以直接使用别人封装好的docker镜像。

    ​ 我这里演示在MAC本机上操作局域网内Elasticsearch服务器。

    ​ 该插件官方地址如下:

    https://github.com/mobz/elasticsearch-head
    

    ​ 使用docker部署Elasticsearch-head:

    $ docker pull alivv/elasticsearch-head
    $ docker container run -d -p 9100:9100 --name="es-head" --restart=always alivv/elasticsearch-head:latest 
    

    ​ 或者使用node.js编译安装Elasticsearch-head:

    $ yum install nodejs npm openssl screen -y 
    $ node -v
    $ npm -v
    $ npm install -g cnpm --registry=https://registry.npm.taobao.org 
    $ cd /opt/
    $ git clone git://github.com/mobz/elasticsearch-head.git
    $ cd elasticsearch-head/
    $ cnpm install
    $ cnpm run start 
    $ Ctrl+A+D
    

    基本使用

    ​ 由于网速原因,我这里使用docker进行的部署,现在可以打开浏览器访问MAC本地地址,端口号是9100(head),即为head工具的端口号。

    image-20210404200429231

    ​ 一般来说,该工具我们只会用它3个地方,分别是概览,索引,数据浏览。

    ​ 并不推荐在该工具中对Elasticsearch进行数据增删改,仅提供浏览功能即可。

    ​ 现在,让我创建一个index,查看Elasticsearch-head中的变化:

    image-20210404194150774

    ​ 变化如下:

    image-20210404194256319

    概念铺垫

    ​ 每一个index创建后,默认都会有5个分片,被称之为主分片。

    ​ 除此之外,默认还会有1个副本,副本也是5个分片,被称之为副本分片。

    ​ 在上面的示例中由于是单节点的Elasticsearch故副本无效,所以右侧集群健康值变黄。

    Elasticsearch天生为集群而生,一个Elasticsearch服务就会被认为是一个集群

    ​ 一个分片,底层就是一个Lucene的索引,包含了倒排索引文件的目录,这样的结构使得Elasticsearch可以在不扫描全部文档的情况下快速的拿出想要的数据。

    ​ 集群状态颜色有以下几种变化:

    • 绿色:所有条件符合,数据完整,副本满足
    • 黄色:数据完整,但副本不满足
    • 红色:索引数据不完整
    • 紫色:有分片正在同步中(多节点)

    Kibana

    功能概述

    ​ kibana是针对Elasticsearch的开源分析以及可视化平台,能够提供各种图表等高级数据的分析展示功能。

    ​ 同时,操作也非常简单,相较于crul命令能有效提高工作效率,是Elasticsearch数据分析的必备软件。

    ​ 注意!kibana必须与Elasticsearch安装版本一致

    下载安装

    ​ 由于我们的Elasticsearch是7.6.1版本,故kibana也要7.6.1版本:

    ​ 由于该工具依然要求npm环境等,所以这里采用docker进行安装部署。

    ​ 我这里演示在MAC本机上操作局域网内Elasticsearch服务器。

    ​ 查看所有kibana版本:点我跳转

    ​ 1)拉取镜像:

    $ docker pull docker.elastic.co/kibana/kibana:7.6.1
    

    ​ 2)创建容器挂载目录:

    $ mkdir -p /opt/docker/kibana/config
    

    ​ 3)配置kibana文件:

    $ vim /opt/docker/kibana/config/kibana.yml
    
    #
    # ** THIS IS AN AUTO-GENERATED FILE **
    #
    
    # Default Kibana configuration for docker target
    server.name: kibana
    server.host: "0"
    
    # elasticsearch服务器的地址:
    elasticsearch.hosts: [ "http://192.168.0.110:9200" ]
    xpack.monitoring.ui.container.elasticsearch.enabled: true
    

    ​ 4)运行镜像,获得容器,需要等很久:

    $ docker run -d --name="kibana" --restart=always -p 5601:5601 -v /opt/docker/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml docker.elastic.co/kibana/kibana:7.6.1
    

    ​ 5)查看容器日志,当有内容变化时代表启动成功了,这个过程可能要持续半分钟:

    $ docker logs -ft kibana
    

    汉化设置

    ​ 浏览器输入127.0.0.1:5601,连接至局域网内的Elasticsearch服务器:

    image-20210404193818722

    ​ 可以看见默认是英文,在这里为其进行汉化设置。

    ​ 我们只需要加上一行配置:

    $ vim /opt/docker/kibana/config/kibana.yml
    
    # 添加到底部
    i18n.locale: zh-CN
    

    ​ 接下来重启容器即可:

    $ docker container rm -f kibana
    $ docker container ls -a
    $ docker container rm -f 容器id
    $ docker run -d --name="kibana" --restart=always -p 5601:5601 -v /opt/docker/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml docker.elastic.co/kibana/kibana:7.6.1
    

    ​ 查看容器日志,当有内容变化时代表启动成功了,这个过程可能要持续半分钟:

    $ docker logs -ft kibana
    

    基本使用

    ​ 现在我们可以点击左侧扳手进行命令输入了,如增加一个库:

    image-20210404195724762

  • 相关阅读:
    评估您的网站/博客的价值
    Jquery从入门到精通:二、选择器 1、准备篇 (2)$()工厂方法
    JQuery核心:1.jQuery( expression, context )
    VS2008引用webservice的奇怪BUG解决方案
    Jquery从入门到精通:二、选择器 1、准备篇 1)基础的基础:DOM模型
    js实现html页面显示时间的定时刷新
    分页显示批量数据
    JSP与Access2010结合,实现数据的交互使用(re)
    通过datasource与数据库交互的jsp范例
    js练习V1
  • 原文地址:https://www.cnblogs.com/Yunya-Cnblogs/p/14616917.html
Copyright © 2011-2022 走看看