使用Docker安装和部署Elasticsearch出现问题以及解决方案

这篇具有很好参考价值的文章主要介绍了使用Docker安装和部署Elasticsearch出现问题以及解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🎈1 参考文档

docker安装elasticsearch(最详细版)| Bright1668-CSDN

es在Windows环境启动报错 | 你道本部院是个书生-CSDN


🚀2 安装和部署Elasticsearch

2.1 设置max_map_count

  1. 查看max_map_count的值 默认是65530

    cat /proc/sys/vm/max_map_count
    
  2. 重新设置max_map_count的值。

    sysctl -w vm.max_map_count=262144
    

2.2 拉取镜像

docker pull elasticsearch::8.0.1

2.3 创建容器

docker run --name es -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
-e xpack.security.enabled=false \
-d elasticsearch:8.0.1
  • –name es:设置容器的名称为"es"。
  • -p 9200:9200 -p 9300:9300:这部分将主机的端口与容器的端口进行映射。
  • -e “discovery.type=single-node”:通过设置此环境变量,将Elasticsearch配置为单节点模式。
  • -e ES_JAVA_OPTS=“-Xms512m -Xmx512m”:这部分设置了Elasticsearch的Java虚拟机(JVM)选项。具体来说,设置了初始堆大小(Xms)为512MB和最大堆大小(Xmx)为512MB。
  • -e xpack.security.enabled=false:此部分设置了Elasticsearch的安全性选项。通过将xpack.security.enabled设置为false,禁用了Elasticsearch的安全特性。在实际生产环境中,通常会启用安全性来保护Elasticsearch集群。
  • -d:此选项告诉Docker在后台运行容器,即以守护进程模式运行容器。
  • elasticsearch:8.0.1:最后部分指定了要运行的Docker镜像的名称和版本。

2.4 访问Elasticsearch

在浏览器中导航到http://your_server_ip:9200,访问Elasticsearch信息页面。


🚀3 安装Elasticsearch Head

3.1 拉取镜像和创建容器

# 拉取镜像
docker pull mobz/elasticsearch-head:5

# 创建容器
docker create --name elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5

# 启动容器
docker start elasticsearch-head

3.2 访问Elasticsearch Head

在浏览器中导航到http://your_server_ip:9100,访问Elasticsearch Head管理页面。


🚩 4 出现的问题

4.1 尝试连接Easticsearch会出现无法访问此网站

  1. 由于是前后端分离开发,所以会存在跨域问题,需要在服务端做CORS的配置。

  2. 解决办法:修改docker中elasticsearch的elasticsearch.yml文件。

    docker exec -it elasticsearch /bin/bash (进不去使用容器id进入)
    
    vi config/elasticsearch.yml
    
  3. 在最下面添加2行。

    http.cors.enabled: true 
    http.cors.allow-origin: "*"
    
  4. 退出并重启服务

    exit
    docker restart elasticsearch-head
    

4.2 进行跨域修改之后还是无法访问

  1. 查看日志。

    docker logs -f es
    
  2. 因为ES默认会去官网下载最新的GEO信息,公司内网server一般和外网不通或者网速慢,所以会报错。

    {"@timestamp":"2023-09-03T03:24:59.123Z", "log.level":"ERROR", "message":"exception during geoip databases update", "ecs.version": "1.2.0","service.name":"ES_ECS","event.dataset":"elasticsearch.server","process.thread.name":"elasticsearch[29b38b4a9a99][generic][T#4]","log.logger":"org.elasticsearch.ingest.geoip.GeoIpDownloader","elasticsearch.cluster.uuid":"1tSrvzuJQfaJmy8qyEmwnQ","elasticsearch.node.id":"EzRz2RjkQLC112uJ_BYZUg","elasticsearch.node.name":"29b38b4a9a99","elasticsearch.cluster.name":"docker-cluster","error.type":"java.net.UnknownHostException","error.message":"geoip.elastic.co","error.stack_trace":"java.net.UnknownHostException: geoip.elastic.co\n\tat java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:567)\n\tat 
    ...
    
  3. 仍需要编辑config/elasticsearch.yml,在末尾添加。

    ingest.geoip.downloader.enabled: false
    

4.3 Elasticsearch-head操作时不修改配置,默认会报406错误码

  1. 修改配置。

    #复制vendor.js到外部
    docker cp elasticsearch-head:/usr/src/app/_site/vendor.js /usr/local/
    
    #修改vendor.js
    vim /usr/src/app/_site/vendor.js
    
  2. 编辑vendor.js。

    • 6886行:contentType:"application/x-www-form-urlencoded" 改成contentType:"application/json;charset=UTF-8"
    • 7574行:var inspectData = s.contentType === "application/x-www-form-urlencoded"&& 改成var inspectData = s.contentType === contentType:"application/json;charset=UTF-8&&"
  3. 修改完成在复制回容器。

    docker cp /usr/local/vendor.js  elasticsearch-head:/usr/src/app/_site
    
  4. 重启elasticsearch-head。文章来源地址https://www.toymoban.com/news/detail-702261.html

    docker restart elasticsearch-head
    

到了这里,关于使用Docker安装和部署Elasticsearch出现问题以及解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ElasticSearch】基于Docker 部署 ElasticSearch 和 Kibana,使用 Kibana 操作索引库,以及实现对文档的增删改查

    Elasticsearch 和 Kibana 是强大的工具,用于构建实时搜索和数据可视化解决方案。Elasticsearch 是一个分布式、高性能的搜索引擎,可以用于存储和检索各种类型的数据,从文本文档到地理空间数据。Kibana 则是 Elasticsearch 的可视化工具,用于实时分析和可视化大规模数据集。 在本

    2024年02月06日
    浏览(34)
  • 使用docker安装部署elasticsearch,并持久化到容器卷

    1.拉取Elasticsearch Docker镜像 在终端中执行以下命令来从Docker Hub拉取特定版本(如8.2.0)的Elasticsearch镜像。请确保你的网络连接正常,并且Docker已经在你的机器上安装并正确配置。 2.创建挂载目录 执行以下命令在本地创建文件夹,用于持久化 Elasticsearch 的数据和配置。 如果上述文

    2024年04月08日
    浏览(25)
  • 虚拟机使用docker安装MySql出现的问题,Navicat连不上MySql

    文章目录 一、问题引入 二、问题分析  三、问题解决  ​四、总结 今天是学习谷粒商城的第一天,既然是第一天,肯定就是先对项目先有个基本的了解,比如是项目所用到的技术栈,项目整体的架构等,还对分布式的相关概念简单说了一下。 接下来来就是搭建环境了,与以

    2024年02月07日
    浏览(26)
  • 部署问题集合(十九)linux设置Tomcat、Docker,以及使用脚本开机自启(亲测)

    因为不想每次启动虚拟机都要手动启动一遍这些东西,所以想要设置成开机自启的状态 创建service文件 添加如下内容,注意修改启动脚本和关闭脚本的地址 设置开机自启: systemctl enable tomcat 重新载入配置文件,使设置生效: systemctl daemon-reload 重新启动看看效果: reboot (如

    2024年02月11日
    浏览(24)
  • 【已解决】aspose工具word转pdf文件,在linux服务器上使用docker-jenkins部署出现内容乱码问题

    因项目需求,需要将word格式文件转换pdf并添加水印,由于我在本地windos开发环境调试没有任何问题,一到测试环境linux发现乱码 例如: 由于项目是用docker+jenkins部署,经排查后发现原因是因为Linux跟windos中的字体不一样,windos中 c:windosuserFonts 目录中自带很多字体。但linux d

    2024年02月04日
    浏览(35)
  • ELK常见部署架构以及出现的问题及解决方案

    ELK 已经成为目前最流行的集中式日志解决方案,它主要是由 Beats 、 Logstash 、 Elasticsearch 、 Kibana 等组件组成,来共同完成实时日志的收集,存储,展示等一站式的解决方案。本文将会介绍ELK常见的架 构以及相关问题解决。 Filebeat :Filebeat是一款轻量级,占用服务资源非常少

    2024年02月13日
    浏览(23)
  • 安装Elasticsearch 8.12.2版本出现的问题

            在Elasticsearch 官网下载了一个es的安装包,准备放在windows电脑上研究研究,下载下来之后启动报错。 jdk版本对应 warning: ignoring JAVA_HOME=E:devjdkjdk17jdk-17.0.10; using bundled JDK Exception in thread \\\"main\\\" java.lang.RuntimeException: starting java failed with [1] output: # # There is insufficient

    2024年03月26日
    浏览(33)
  • Linux下安装ElasticSearch-analysis-ik中文分词器插件,以及可能出现的异常处理

            注意:安装可以采用在线方式、离线方式,但是不建议在线安装,速度超级慢,本文只介绍离线安装方式                 下载地址:https://github.com/medcl/elasticsearch-analysis-ik                 切记选择版本需要跟ElasticSearch保持一致,否则可能会出现一些未知的异

    2024年02月07日
    浏览(38)
  • Docker安装部署ElasticSearch

    因为我们还需要部署 kibana 容器,因此需要让 ElasticSearch 和 kibana 容器互联。这里先创建一个网络: 考虑到 ElasticSearch 的兼容性,这里 ElasticSearch 、 kibana 统一下载 8.6.2 版本 注意第一次执行脚本不要加 -d 这个参数,否则看不到服务首次运行时生成的随机密码和随机 enrollment

    2024年02月03日
    浏览(21)
  • 安装Windows版nginx以及部署前端代码并就解决刷新出现404

    (1)下载地址:https://nginx.org/en/download.html (2)建议选稳定版下载 (3)下载好后,直接解压即可 (1)启动nginx时,使用命令进行操作;不要直接双击nginx.exe,在nginx根目录下直接输:cmd。 启动时会一闪而过是正常的 (1)启动nginx:start nginx ①启动后查看任务进程是否存在

    2024年02月04日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包