01、前言
虽然工作中不是第一次接触 elasticsearch (后面简称 es), 但是由于之前有公司环境撑着, 都是一些正式的数据, 所以一直没在本地搭建相关的环境
这次要往 es 里边存放 大量测试数据, 为了不影响测试环境使用还是本地搭一套吧
02、elasticsearch 介绍
es 是基于 lucene 的的基础上开发而成的, 提供了一套分布式、高扩展、高实时的搜索与数据分析引擎, 使用 Java 语言开发
以其简单的 REST 风格 API、分布式特性、速度和可扩展性而闻名
03、elasticsearch 优势
3.1 查询性能 & 全文搜索
es 查询性能很快。 由于 es 是在 lucene 基础上构建而成的, 所以在全文本搜索方面表现十分出色
es 同时还是一个 近实时 的搜索平台, 这意味着从文档索引操作到文档变为可搜索状态之间的延时很短,一般 只有一秒
3.2 分布式特性
es 具有 分布式的本质特征。 es 中存储的文档分布在不同的容器中, 这些容器称为分片, 可以进行复制以提供数据 冗余副本, 以防发生硬件故障
es 的分布式特性使得它可以扩展至数百台(甚至数千台)服务器, 并处理 PB 量级的数据
3.3 广泛的功能
es 包含一系列 广泛的功能。 除了速度、可扩展性和弹性等优势以外, es 还有大量强大的内置功能(例如数据汇总和索引生命周期管理), 可以方便用户更加高效地存储和搜索数据
04、kibana 介绍
kibana 是一款适用于 es 的 数据可视化和管理工具, 可以提供实时的直方图、线形图、饼状图和地图
支持用户安全权限体系, 支持各种纬度的插件, 通常搭配 es、logstash 一起使用
05、安装环境说明
- Docker 版本: v19.03.8
- Elasticsearch 版本: 7.8.0
- Kibana 版本: 7.8.0
- docker elastic
06、elasticsearch 安装
6.1 docker 安装 elasticsearch
为了方便省事, 直接使用 docker 安装 elasticsearch:7.8.0 的 es 就可以
# 拉取 es 的 docker 镜像
# 这里拉取 7.8.0 版本, 也是最近新发布的
docker pull elasticsearch:7.8.0
docker 拉取镜像成功后, 使用命令查看本地是否有此镜像
# 查看 docker 中 es 镜像
docker images elasticsearch
# 发现镜像已经安安静静的在这了
REPOSITORY TAG IMAGE ID CREATED SIZE
elasticsearch 7.8.0 121454ddad72 5 weeks ago 810MB
这里推荐一款 docker 的可视化管理工具, 提供容器、镜像、日志等功能
6.2 docker 启动 elasticsearch
接下来直接启动 docker 中的 es 镜像就好了
# -d : 后台运行
# -p : 指定宿主机与docker启动容器的端口映射
# --name : 为 elasticsearch 容器起个别名
# -e : 指定为单节点集群模式
# -v : 分别将 es 的数据以及插件挂载到宿主机
docker run -d --name elasticsearch \
-p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-v ~/docker/data/es:/usr/share/elasticsearch/data \
-v ~/docker/plugins/es:/usr/share/elasticsearch/plugins \
elasticsearch:7.8.0
浏览器输入 http://localhost:9200/ 或者终端输入 curl http://localhost:9200/ 来检查es是否安装成功
{
"name":"018ed28bad4d",
"cluster_name":"docker-cluster",
"cluster_uuid":"dBM2ktQ3TOu4_ivrDc0aBw",
"version":{
"number":"7.8.0",
"build_flavor":"default",
"build_type":"docker",
...
},
"tagline":"You Know, for Search"
}
07、kibana 安装
7.1 docker 安装 kibana
需要注意的是, kibana 的版本最好与 elasticsearch 保持一致, 避免发生不必要的错误
# 直接和 es 保持一致
docker pull kibana:7.8.0
# 查看镜像是否拉取到本地
docker images kibana
# 版本与 es 也是一致的 7.8.0
REPOSITORY TAG IMAGE ID CREATED SIZE
kibana 7.8.0 df0a0da46dd1 5 weeks ago 1.29GB
可以看到 kibana 的镜像已经拉取好了, 接下来启动 kibana 试试页面效果
7.2 docker 启动 kibana
7.8.0 版本的 kibana 包比较大, 启动较慢, 稍等个半分钟
# -e : 指定环境变量配置, 提供汉化
# --like : 建立两个容器之间的关联, kibana 关联到 es
docker run -d --name kibana --link elasticsearch:elasticsearch -e "I18N_LOCALE=zh-CN" -p 5601:5601 kibana:7.8.0
# kibana 的汉化我感觉做的并不好
# 如果不习惯汉化, 可以把条件去除
docker run -d --name kibana --link elasticsearch:elasticsearch -p 5601:5601 kibana:7.8.0
可以根据 portainer 查看下容器日志, 或者使用 docker 命令也可以
# 查看 kibana 的日志
docker logs kibana
浏览器输入地址 http://localhost:5601/, 启动成功
08、学习总结
安装 es & kibana 也是躺了不少雷, 包括单节点启动异常、kibana 无法通信 es等
躺了这么多雷, 也再次明白一个事实, 碰到问题结合官网看
也尝试了使用 nshou/elasticsearch-kibana 的组合镜像, 这个镜像包含了 es & kibana 两个镜像, 安装后就放弃了, 自行安装体会
后面再写一个 docker-compose 的方式安装, 会放在写 es 的基本操作文章内