首页 > 其他 > 详细

Elasticsearch 常用工具

时间:2021-04-04 22:36:06      阅读:25      评论:0      收藏:0      [点我收藏+]

语法格式

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

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

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

? VERB:HTTP请求方式,如GET\POST\PUT\HEAD\DELETE等

? 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工具的端口号。

技术分享图片

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

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

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

技术分享图片

? 变化如下:

技术分享图片

概念铺垫

? 每一个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服务器:

技术分享图片

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

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

$ 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

基本使用

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

技术分享图片

Elasticsearch 常用工具

原文:https://www.cnblogs.com/Yunya-Cnblogs/p/14616917.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!