了解ES

什么是elasticesarch

elasticsearch是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容。

elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在日志数据分析、实时监控等领域。

elasticsearch是elastic stack的核心,负责存储、搜索、分析数据。
image.png


elasticsearch的发展

image.png

image.png


为什么学习elasticsearch?

image.png


倒排索引

image.png
image.png


es的一些概念

文档

image.png


索引

image.png


概念对比

image.png


架构

image.png


安装es、kibana

拉取镜像(大约1.2g)【我这里并没有拉取8版本以上,因为引入一个安全策略,对http配置麻烦点】

  1. docker pull elasticsearch:7.16.1

1.部署单点es

因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络:

  1. docker network create es-net

部署单节点

docker run -d \
    --name es \
    -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
    -e "discovery.type=single-node" \
    -v /root/es/data:/usr/share/elasticsearch/data \
    -v /root/es/plugins:/usr/share/elasticsearch/plugins \
    --privileged \
    --network es-net \
    -p 9200:9200 \
    -p 9300:9300 \
elasticsearch:7.16.1

注意:这里可能会因为权限不够,会让es启动后自动退出,所以得给挂载目录修改

chmod -R 777 es

命令解释:

  • -e "cluster.name=es-docker-cluster":设置集群名称
  • -e "http.host=0.0.0.0":监听的地址,可以外网访问
  • -e "ES_JAVA_OPTS=-Xms512m -Xmx512m":内存大小
  • -e "discovery.type=single-node":非集群模式
  • -v es-data:/usr/share/elasticsearch/data:挂载逻辑卷,绑定es的数据目录
  • -v es-logs:/usr/share/elasticsearch/logs:挂载逻辑卷,绑定es的日志目录
  • -v es-plugins:/usr/share/elasticsearch/plugins:挂载逻辑卷,绑定es的插件目录
  • --privileged:授予逻辑卷访问权
  • --network es-net :加入一个名为es-net的网络中
  • -p 9200:9200:端口映射配置

在浏览器中输入:http://ip:9200 即可看到elasticsearch的响应结果:
image.png


2.部署kibana

docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--network=es-net \
-p 5601:5601  \
kibana:7.16.1

—network es-net:加入一个名为es-net的网络中,与elasticsearch在同一个网络中 -e ELASTICSEARCH_HOSTS=http://es:9200":设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch -p 5601:5601:端口映射配置 kibana启动一般比较慢,需要多等待一会

访问5601端口,可以进入界面,有两种方式:一种自己导数据,一种它帮我们导数据
image.png

选择Dev Tools就可以很方便进行学习
image.png

模拟一开始es请求
image.png