docker 安装 Elasticsearch + kibana

在使用 Elasticsearch 之前,首先要保证虚拟机或云服务器有足够的内存;

Elasticsearch 因其底层原理,非常吃内存;

1、docker 下载 Elasticsearch、kibana

docker pull elasticsearch:7.10.1
docker pull kibana:7.10.1

elasticsearch 和 kibana 的版本号一定要一致!

版本可以在 https://hub.docker.com/_/kibana?tab=tags&page=1 中查询

2、创建 elasticsearch 映射目录

mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data

3、修改配置文件,让所有 ip 地址均可访问

echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml

4、创建、启动、映射目录文件

docker run --name es -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx256m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.10.1# 9200:用于发送 http 请求的端口号;# 9300:es 分布式情况下的通讯端口号;# -e "discovery.type=single-node":es 以单节点运行;# -e ES_JAVA_OPTS="-Xms64m -Xmx512m":设置 es 启动参数,不设置的话 es 会占用大量的内存空间;# -v 相关指令:config 映射配置文件;data 映射数据;plugins 映射 es 可以安装的插件;# -d elasticsearch:7.10.1:启动 es;

5、修改配置文件的权限

此时使用 docker ps -a 可以看到启动的 es 的状态为 Exited;

使用 docker logs es 查看日志:

ElasticsearchException[failed to bind service]; nested: AccessDeniedException[/usr/share/elasticsearch/data/nodes];
Likely root cause: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes
    at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90)
    at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
    at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
    at java.base/sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:388)
    at java.base/java.nio.file.Files.createDirectory(Files.java:694)
    at java.base/java.nio.file.Files.createAndCheckIsDirectory(Files.java:801)
    at java.base/java.nio.file.Files.createDirectories(Files.java:787)
    at org.elasticsearch.env.NodeEnvironment.lambda$new$0(NodeEnvironment.java:275)
    at org.elasticsearch.env.NodeEnvironment$NodeLock.(NodeEnvironment.java:212)
    at org.elasticsearch.env.NodeEnvironment.>(NodeEnvironment.java:272)
    at org.elasticsearch.node.Node.>(Node.java:362)
    at org.elasticsearch.node.Node.>(Node.java:289)
    at org.elasticsearch.bootstrap.Bootstrap$5.(Bootstrap.java:227)
    at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:227)
    at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:393)
    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:170)
    at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:161)
    at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)
    at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:127)
    at org.elasticsearch.cli.Command.main(Command.java:90)
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:126)
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92)
For complete error details, refer to the log at /usr/share/elasticsearch/logs/elasticsearch.log

错误说是访问的文件没有权限;

也就是映射出来的 /mydata/elasticsearch 中的文件没有权限;

使用下面的指令进行修改:

chmod -R 777 /mydata/elasticsearch

docker 安装 Elasticsearch + kibana

6、重新启动 es 容器

docker restart es

7、使用浏览器访问 es 的 9200 端口

使用浏览器访问 es 所在服务器的 9200 端口,如果出现下面的 json 字符串,表示 es 正常运行;

{
  "name" : "5cc88f927be3",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "pLcairiDSBO4OKL1wxhbLw",
  "version" : {
    "number" : "7.10.1",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "1c34507e66d7db1211f66f3513706fdf548736aa",
    "build_date" : "2020-12-05T01:00:33.671820Z",
    "build_snapshot" : false,
    "lucene_version" : "8.7.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

8、启动 kibnan

docker run --name kibana -e ELASTICSEARCH_HOSTS=http://172.17.0.1:9200 -p 5601:5601 -d kibana:7.10.1

注意,这里的 172.17.0.1 需要自行配置;

如果安装的 es 和 kibana 在同一台服务器上,使用 docker inspect es 查看 es 容器的 Gateway,填写对应的 ip 地址;

如果 es 和 kibana 不在同一个服务器,使用 es 所在服务器的 ip 地址替换 172.17.0.1;

9、使用浏览器访问服务器的 5601 端口

docker 安装 Elasticsearch + kibana

第一次安装的话,这个页面之前还有一个页面,我忘记截屏了;

Original: https://www.cnblogs.com/whatzyt/p/16131047.html
Author: whatzyt
Title: docker 安装 Elasticsearch + kibana

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/571714/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • java中为什么只存在值传递(以传入自定义引用类型为例)

    java中只有值传递 为什么这么说?两个例子: public class Student { int sage = 20; String sname = "云胡不归&qu…

    Java 2023年6月13日
    072
  • java基础学习-逻辑运算符,位运算符

    posted @2021-12-08 17:44 小小小小青石 阅读(14 ) 评论() 编辑 Original: https://www.cnblogs.com/junnnnnn…

    Java 2023年6月13日
    063
  • NoteOfMySQL-07-索引

    1. 索引概述 创建索引的目的是为了优化数据库的查询速度,不添加索引的情况下需要遍历所有数据才能进行删、查、改等操作。 2. 索引存储类型 存储类型 支持的存储引擎 B型树(BTR…

    Java 2023年6月5日
    0106
  • spring中的事件发布与监听

    点赞再看,养成习惯,微信搜索「 小大白日志」关注这个搬砖人。 文章不定期同步公众号,还有各种一线大厂面试原题、我的学习系列笔记。 spring事件发布与监听的应用场景 当处理完一段…

    Java 2023年6月8日
    055
  • Nginx做前端Proxy时TIME_WAIT过多的问题

    我们的DSP系统目前基本非凌晨时段的QPS都在10W以上,我们使用Golang来处理这些HTTP请求,Web服务器的前端用Nginx来做负载均衡,通过Nginx的proxy_pas…

    Java 2023年5月30日
    050
  • Spring系列5:各种属性值依赖注入

    上一篇我们介绍Spring中2种依赖注入的方式: 构造函数注入,主要的标签是 <constructor-arg></constructor-arg> Set…

    Java 2023年6月5日
    079
  • Redis分布式锁

    SETNX命令 将 key 的值设为 value,当且仅当 key 不存在。 若给定的 key 已经存在,则 SETNX 不做任何动作。SETNX 是SET if Not eXis…

    Java 2023年6月6日
    056
  • Java-异常初步练习

    案例一: package com.esandinfo; /** * 自定义一个Exception类 */ class MyCustomException extends Runti…

    Java 2023年5月29日
    077
  • 学习狂神Spring5_课堂笔记(更新中)

    Spring 简介 spring,英文单词为春天,表示为软件行业带来了春天。 2002年,首次推出了Spring框架的雏形:interface21框架。官网为:www.interf…

    Java 2023年6月5日
    079
  • 复试-英语自我介绍-模板参考

    英语自我介绍模板,我没用到……分享给网友。 Good morning, my distinguished professors. It’s my…

    Java 2023年6月5日
    081
  • tomcat拦截特殊字符报400,如 “|” “{” “}” “,”等符号的解决方案

    最近在做一个项目,需要对外暴露两个接口接收别人给的参数,但是有一个问题就是对方的项目是一个老项目,在传参数的时候是将多个字符放在一个参数里面用”|”进行分割…

    Java 2023年6月13日
    075
  • 数据视图

    视图作用 定义视图是设计数据库外模式的基本手段。视图能够为数据库系统提供一下优势: 1. &#x6570;&#x636E;&#x7684;&#x90…

    Java 2023年6月9日
    073
  • @Aspect一直无法自动使用的原因

    使用注解实现AOP的时候遇见了一个问题 org.aspectj aspectjweaver 1.9.6 runtime 从网上拉下来的aspectj依赖没注意带了一个 <sc…

    Java 2023年6月15日
    072
  • 我的第一个springboot starter

    在springboot中有很多starter,很多是官方开发的,也有是个人或开源组织开发的。这些starter是用来做什么的呐? 一、认识starter 所谓的starter,在s…

    Java 2023年6月9日
    064
  • 观察线程的状态

    public class ThreadState { public static void main(String[] args) { // 定义一个线程 Thread threa…

    Java 2023年6月13日
    082
  • CentOS7下FTP的安装与配置2

    1、安装 yum install -y vsftpd 2、配置FTP 3、建立用户文件 4、生成用户加密数据 5、修改 /etc/pam.d/vsftpd 文件 6、新建系统用户t…

    Java 2023年5月29日
    075
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球