Docker 简单部署 Elasticsearch 7.16.2 与使用文档超详细图文步骤

Docker 简单部署 Elasticsearch 7.16.2 与使用文档超详细图文步骤,第1张

Docker 简单部署 Elasticsearch 7.16.2 与使用文档超详细图文步骤 1、简介 1.1、概述

Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。

1.2、官网

Elasticsearch 官网

2、准备工作 2.1、安装 Docker

CentOS7 安装 Docker

2.2、创建 bridge 网络并指定 IP 区间
# 创建自定义网络
docker network create --driver bridge --subnet 172.0.0.0/16 woniu_network
 
# 查看已存在网络
docker network ls
2.3、创建数据和配置存放目录
# 创建主节点数据存放目录
mkdir -p /home/docker/elasticsearch/master/data 
&& chmod 777 /home/docker/elasticsearch/master/data

# 创建主节点配置存放目录
mkdir -p /home/docker/elasticsearch/master/config 
&& chmod 777 /home/docker/elasticsearch/master/config

# 创建主节点日志存放目录
mkdir -p /home/docker/elasticsearch/master/logs 
&& chmod 777 /home/docker/elasticsearch/master/logs

# 创建主节点插件存放目录
mkdir -p /home/docker/elasticsearch/master/plugins 
&& chmod 777 /home/docker/elasticsearch/master/plugins
2.4、查询 Docker Elasticsearch 版本

通过 Docker Hub 查询 Elasticsearch 版本,选择 7.16.2 版本,如下图:

3、安装 Elasticsearch 3.1、启用 Elasticsearch 安全功能

参考文档:Elasticsearch 安全功能入门
参考文档:Elasticsearch 设置最低安全性

3.2、安装并运行 Elasticsearch
# 安装并运行 Elasticsearch

docker run -d -p 9200:9200 -p 9300:9300 
--name elasticsearch_master 
--restart=always 
--network woniu_network 
--ip 172.0.0.92 
--cpuset-cpus="1" 
--memory="2G" 
-e TZ="Asia/Shanghai" 
-e LANG="C.UTF-8" 
elasticsearch:7.16.2
3.3、复制 Elasticsearch 配置文件
# 在容器 elasticsearch_master 中开启一个交互模式的终端
docker exec -it elasticsearch_master /bin/bash

# 生成 elastic 证书
bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""

# 退出 elasticsearch_master 容器
exit

# 把容器中的 elasticsearch_master 配置文件复制出来
docker cp -a elasticsearch_master:/usr/share/elasticsearch/config/ /home/docker/elasticsearch/master/

# 删除 elasticsearch_master 容器
docker rm -f elasticsearch_master

# 修改 elasticsearch_master 配置文件权限
chmod 777 /home/docker/elasticsearch/master/config
3.4、编辑配置文件
# 进入主节点配置文件目录
cd /home/docker/elasticsearch/master/config

# 编辑单机版配置文件
vi elasticsearch.yml

先清空原文件,拷贝如下内容:

# 集群名称,必须一样
cluster.name: woniu

# 当前该节点的名称,必须不一样
node.name: elasticsearch_master

# 表示主节点
node.master: true  

# 设置网关地址
network.host: 0.0.0.0

# 设置映射端口
http.port: 9200

# 单机运行,此设置可确保您的节点不会无意中连接到可能在您的网络上运行的其他集群。
discovery.type: single-node

discovery.seed_hosts: ["127.0.0.1", "[::1]"]

# 支持跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers : X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization
http.cors.allow-credentials: true

# 设置为 true 则在节点上启用X-Pack安全特性,false表示禁用X-Pack安全特性
xpack.security.enabled: true

xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
3.5、自定义启动 Elasticsearch
# 自定义启动 Elasticsearch

docker run -d -p 9200:9200 -p 9300:9300 
--name elasticsearch_master 
--restart=always 
--network woniu_network 
--ip 172.0.0.92 
--cpuset-cpus="1" 
--memory="2G" 
-v /home/docker/elasticsearch/master/config/:/usr/share/elasticsearch/config/ 
-v /home/docker/elasticsearch/master/data/:/usr/share/elasticsearch/data/ 
-v /home/docker/elasticsearch/master/plugins/:/usr/share/elasticsearch/plugins/ 
-v /home/docker/elasticsearch/master/logs/:/usr/share/elasticsearch/logs/ 
-v /etc/localtime:/etc/localtime 
-e TZ="Asia/Shanghai" 
-e LANG="C.UTF-8" 
elasticsearch:7.16.2
3.6、自定义 Elasticsearch 密码
# 在容器 elasticsearch_master 中开启一个交互模式的终端
docker exec -it elasticsearch_master /bin/bash

# 设置用户名和密码的命令,这里需要为 7 个用户分别设置密码
# elastic,apm_system,kibana,kibana_system,logstash_system
# ,beats_system,remote_monitoring_user
bin/elasticsearch-setup-passwords interactive

示例如下:

3.7、删除 Elasticsearch
# 删除 Elasticsearch
docker rm -f elasticsearch_master
3.4、Elasticsearch 安装成功

浏览器访问IP:9200,因为我们设置了安全模式所以需要输入密码,用户名示例:elastic 或 kibana,密码是刚才自定义设置,点击登录:

如果出现以下界面就是安装成功

{
    "name":"elasticsearch_master",
    "cluster_name":"woniu",
    "cluster_uuid":"mFIVki4sSiioTH9I7qNKkw",
    "version":{
        "number":"7.16.2",
        "build_flavor":"default",
        "build_type":"docker",
        "build_hash":"2b937c44140b6559905130a8650c64dbd0879cfb",
        "build_date":"2021-12-18T19:42:46.604893745Z",
        "build_snapshot":false,
        "lucene_version":"8.10.1",
        "minimum_wire_compatibility_version":"6.8.0",
        "minimum_index_compatibility_version":"6.0.0-beta1"
    },
    "tagline":"You Know, for Search"
}
3.4、Elasticsearch 可视化工具

Elasticsearch 可视化工具 ElasticHD

Docker 简单部署 Kibana 7.16.2 超详细图文步骤

4、启动报错 4.1、情况一

max_map_count 文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量

ERROR: [1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch.

bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

ERROR: Elasticsearch did not exit normally - check the logs at /usr/share/elasticsearch/logs/woniu.log

解决方案

# elasticsearch用户拥有的内存权限太小,至少需要262144

# 查看配置 sysctl.conf
cat /etc/sysctl.conf

# 修改配置 sysctl.conf
sudo vi /etc/sysctl.conf

# 添加下面配置:
vm.max_map_count=655360

# 执行命令:
sysctl -p
4.2、情况二

Docker 安装文件目录权限问题

[0.000s][error][logging] Error opening log file 'logs/gc.log': Permission denied


[0.000s][error][logging] Initialization of output 'file=logs/gc.log' using options 'filecount=32,filesize=64m' failed.

解决方案

# 修改无权限目录,示例
chmod 777 /home/docker/elasticsearch/master/logs
5、Java API 客户端

参考文档:Elasticsearch Java API 客户端 [7.16]

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/5698984.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存