Elasticsearch
参考链接
https://www.elastic.co/cn/elasticsearch/
选择合适的版本
https://docs.spring.io/spring-data/elasticsearch/docs/current/reference/html/
我使用的是Spring Boot 2.4.x所以,我使用7.9.3版本。
快速上手
https://hub.docker.com/_/elasticsearch/
注意事项:
使用 Docker 拉取镜像的时候要使用明确的版本号,不支持 latest
错误演示
root@localhost ~]# docker pull elasticsearch
Using default tag: latest
Error response from daemon: manifest for elasticsearch:latest not found: manifest unknown: manifest unknown
[root@localhost ~]#
第一步:使用 Docker 启动 elasticsearc,下面给出两种方式
docker network create elk_net
docker run -d --name elasticsearch --net elk_net -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.9.3
第二步:访问 9200 端口,如看到下面的内容说明启动成功
{
"name" : "f68403c0eed0",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "pPxB89MWSiq8yX_7T64XkQ",
"version" : {
"number" : "7.9.3",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "c4138e51121ef06a6404866cddc601906fe5c868",
"build_date" : "2020-10-16T10:36:16.141335Z",
"build_snapshot" : false,
"lucene_version" : "8.6.2",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
生产环境
https://www.elastic.co/guide/en/elasticsearch/reference/7.5/docker.html
镜像拉取
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.9.3
单节点
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.9.3
多节点
使用 docker compose构建多节点集群,首先创建一个 docker-compose.yml 文件
version: '2.2'
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:7.5.2
container_name: es01
environment:
- node.name=es01
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es02,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data01:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- elastic
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:7.5.2
container_name: es02
environment:
- node.name=es02
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data02:/usr/share/elasticsearch/data
networks:
- elastic
es03:
image: docker.elastic.co/elasticsearch/elasticsearch:7.5.2
container_name: es03
environment:
- node.name=es03
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es02
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data03:/usr/share/elasticsearch/data
networks:
- elastic
volumes:
data01:
driver: local
data02:
driver: local
data03:
driver: local
networks:
elastic:
driver: bridge
集群启动
docker-compose up
测试命令
curl -X GET "localhost:9200/_cat/nodes?v&pretty"
集群停止
docker-compose down
生产中的一些设置
设置 vm.max_map_count
随机发布端口
始终绑定容器数据卷
设置堆大小
-e ES_JAVA_OPTS="-Xms16g -Xmx16g"
Kibana
https://hub.docker.com/_/kibana
Kibana:如何在 Linux,MacOS 及 Windows 上安装 Elastic 栈中的 Kibana
版本选择
kibana 跟 elasticsearch 保持一致,也就是 7.9.3 版本
快速上手
docker run -d --name kibana --net elk_net -p 5601:5601 kibana:7.9.3
两个容器需要都在同一个net下,也就是 elk_net,访问5601成功看到如下页面代表成功。
点击 Explore on my own 进入控制台,点击 Dev Tools 进入开发工具
输入 GET / 运行,出现右侧内容代表安装成功
汉化
Windows 汉化步骤:修改yml最后一行内容即可
Docker 汉化步骤:
i18n.locale: zh-CN
修改后使用docker restart 命令重启容器,效果如下
Logstash
https://elasticstack.blog.csdn.net/article/details/99655350