Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。
1.2、官网Elasticsearch 官网
2、准备工作 2.1、安装 DockerCentOS7 安装 Docker
2.2、创建 bridge 网络并指定 IP 区间# 创建自定义网络 docker network create --driver bridge --subnet 172.0.0.0/16 woniu_network # 查看已存在网络 docker network ls2.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/plugins2.4、查询 Docker Elasticsearch 版本
通过 Docker Hub 查询 Elasticsearch 版本,选择 7.16.2 版本,如下图:
参考文档:Elasticsearch 安全功能入门
参考文档: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.23.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/config3.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.p123.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.23.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
示例如下:
# 删除 Elasticsearch docker rm -f elasticsearch_master3.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 -p4.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/logs5、Java API 客户端
参考文档:Elasticsearch Java API 客户端 [7.16]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)