目录:
一、ES 是什么?
二、Kibana 是什么?
三、安装ES 、 Kibana
四、向 ES 导入 Demo 数据
五、ES 入门测试
六、ES 基础请求 DSL
七、相关文档链接
一、ES 是什么?
Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为 Elastic Stack 的核心,Elasticsearch 会集中存储您的数据,让您飞快完成搜索,微调相关性,进行强大的分析,并轻松缩放规模。
上述描述摘自官网,当你能看到我这篇文章的时候,脑海里应该对 ES 有一个初步的概念了,可以把它理解为把数据存放在内存中的 MySQL,它最主要的功能是海量数据实时检索,比起传统的关系型数据库的优点是,没有磁盘 IO 开销,因为索引数据大部分都是存在于内存中的,我们可以通过 ES 提供的 Rest API 像通过 SQL 语句查询关系型数据库中的数据一样,官方的描述是这种查询语言称为 DSL。
Elasticsearch 提供了一个完整的基于 JSON 的查询 DSL(领域特定语言)来定义查询。将查询 DSL 视为查询的 AST(抽象语法树),由两种类型的子句组成:
二、Kibana 是什么?
Kibana 使您能够塑造数据并在 Elastic Stack 中导航。使用 Kibana,您可以:
- 搜索、观察和保护您的数据。 从发现文档到分析日志再到查找安全漏洞,Kibana 是您访问这些功能及更多功能的门户。
- 分析您的数据。 搜索隐藏的见解,可视化您在图表、仪表、地图、图形等中发现的内容,并将它们组合到仪表板中。
- 管理、监控和保护 Elastic Stack。 管理您的数据,监控 Elastic Stack 集群的健康状况,并控制哪些用户可以访问哪些功能。
- Kibana 文档:https://www.elastic.co/guide/en/kibana/current/introduction.html
可以将 Kibana 理解为方便我们发送 Rest API 请求的一个客户端,相当于专门为 ES 服务器打造的一个 Postman 。
三、安装ES 、 Kibana
安装前默认你的 Linux 已经具备了 docker、 docker-compose 环境,将下面的配置文件保存为名称是:docker-compose.yml 的文件。
version: '3.5'
services:
elasticsearch:
container_name: elasticsearch
build:
context: services/elasticsearch
args:
- ES_VER=7.5.0
ports:
- "9200:9200"
- "9300:9300"
environment:
ES_JAVA_OPTS: "-Xms512m -Xmx512m" #设置使用jvm内存大小
discovery.type: single-node #以单一节点模式启动
# ELASTIC_PASSWORD: 123456 #设置ES密码
privileged: true
volumes:
- ./data/elasticsearch/plugins/:/usr/share/elasticsearch/plugins/
- ./data/elasticsearch/:/usr/share/elasticsearch/data/
- ./logs/elasticsearch/:/usr/share/elasticsearch/logs/
- ./services/elasticsearch/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
kibana:
container_name: kibana
build:
context: services/kibana
args:
- KIBANA_VER=7.5.0
ports:
- "5601:5601"
privileged: true
volumes:
- ./services/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml
depends_on:
- elasticsearch
创建好文件后,在文件所属的目录下执行命令: docker-compose -f docker-compose.yml up -d (-d : 在后台所有启动服务, -f : 指定使用的Compose模板文件,默认为docker-compose.yml,可以多次指定。)我这里是安装的 7.5.0 的 ES 版本,Kibana 的版本与之对应,假设设置了 ES 密码,那么后续请求 ES 服务都需要带上身份验证信息,Kibana 也需要输入账户名、密码登录, 账户名默认为:elastic ,密码:yml 文件中设置的 ES 密码。
四、向 ES 导入 Demo 数据
访问部署 Kibana 的机器, ip:5601,进入 Kibana 首页,点击网页做下架的展开菜单栏图标,选择 Dev Tools 选项,打开后,在网页左侧可以编写 DSL 语句,向 ES 发送请求,右侧显示相应结果。执行的命令如下,将内容粘贴至 Kibana中,将光标放置在 :POST bank/_bulk 这一行,行尾右侧边栏回显示一个三角形和一个扳手图标,点击三角形发送请求保存数据。
POST bank/_bulk
粘贴这个网页中的文档数据在下方然后点击执行(感谢此作者):https://gitee.com/xlh_blog/common_content/blob/master/es%E6%B5%8B%E8%AF%95%E6%95%B0%E6%8D%AE.json#
五、ES 入门测试
将以下文档创建名为:ES 7.5.postman_collection.json 的 JSON 文件,然后点击 Postman 左上角的 Import 按钮选中文件导入即可。
{
"info": {
"_postman_id": "34d02b44-25de-46e9-b4d2-c03f9e223ffd",
"name": "ES 7.5",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
"_exporter_id": "11045914"
},
"item": [
{
"name": "查看版本",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:9200",
"protocol": "http",
"host": [
"localhost"
],
"port": "9200"
}
},
"response": []
},
{
"name": "查看节点信息",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:9200/_cat/nodes",
"protocol": "http",
"host": [
"localhost"
],
"port": "9200",
"path": [
"_cat",
"nodes"
]
}
},
"response": []
},
{
"name": "查看主节点信息",
"request": {
"method": "GET",
"header": [],
&#