Linux 环境下 docker 安装 ES 7.15.2 和 kibana 7.15.2 详细步骤

2023-11-17

 目标:在一台机器内设置3个ES节点和1个kibana节点正常运行

条件:本机器内的IP:192.168.211.130

1.首先安装docker,步骤详见链接https://blog.csdn.net/m0_55380752/article/details/123768769

2.设置环境配置(打开文件后,在最后添加即可)

vim /etc/sysctl.conf

#fs.file-max主要是配置系统最大打开文件描述符数,建议修改为655360或者更高

fs.file-max=655360

#影响Java线程数量,用于限制一个进程可以拥有的VMA(虚拟内存区域)的大小

vm.max_map_count = 262144

vim /etc/security/limits.conf

#可打开的文件描述符的最大数(软限制)

* soft noporc 65536

#可打开的文件描述符的最大数(硬限制)

* hard noporc 65536

#单个用户可用的最大进程数量(软限制)

* soft nofile 65536

#单个用户可用的最大进程数量(硬限制)

* hard nofile 65536

#内存不限制

* soft memlock unlimited

* hard memlock unlimited

#centos7特有,修改软限制

vim /etc/security/limits.d/20-nproc.conf

*          soft    nproc     40960

设置后,需要让这些配置生效一下,命令:sysctl -p  

3.拉取Elasticsearch镜像并安装:

        3.1拉去镜像语句: docker pull docker.elastic.co/elasticsearch/elasticsearch:7.15.2

        3.2 设置环境

                3.2.1 创建目录

                        mkdir -p /usr/local/elasticsearch/data && mkdir -p /usr/local/elasticsearch/config && mkdir -p /usr/local/elasticsearch/logs && mkdir -p /usr/local/elasticsearch/plugins

                3.2.2 建立yml文件(设置3个节点,master/hot/cold)

  vi  /usr/local/elasticsearch/config/master.yml

# 设置集群名称,集群内所有节点的名称必须一致。
cluster.name: es-cluster
# 设置节点名称,集群内节点名称必须唯一。
node.name: node-master
# 表示该节点会不会作为主节点,true表示会;false表示不会
node.master: true
# 当前节点是否用于存储数据,是:true、否:false
node.data: true
# 索引数据存放的位置
path.data: /usr/share/elasticsearch/data_master
# 日志文件存放的位置
path.logs: /usr/share/elasticsearch/logs_master
# 需求锁住物理内存,是:true、否:false
bootstrap.memory_lock: false
# 监听地址,用于访问该es
network.host: 192.168.211.130
# es对外提供的http端口,默认 9200
http.port: 9200
# TCP的默认监听端口,默认 9300
transport.tcp.port: 9300
# es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
discovery.seed_hosts: ["192.168.211.130:9300", "192.168.211.130:9301","192.168.211.130:9302"]
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
# es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["192.168.211.130:9300", "192.168.211.130:9301","192.168.211.130:9302"]
# 是否支持跨域,是:true,在使用head插件时需要此配置
http.cors.enabled: true
# “*” 表示支持所有域名
http.cors.allow-origin: "*"

#监控堆栈
xpack.monitoring.collection.enabled: true


 

 vi  /usr/local/elasticsearch/config/cold.yml

# 设置集群名称,集群内所有节点的名称必须一致。
cluster.name: es-cluster
# 设置节点名称,集群内节点名称必须唯一。
node.name: node-cold
# 表示该节点会不会作为主节点,true表示会;false表示不会
node.master: true
# 当前节点是否用于存储数据,是:true、否:false
node.data: true
# 索引数据存放的位置
path.data: /usr/share/elasticsearch/data_cold
# 日志文件存放的位置
path.logs: /usr/share/elasticsearch/logs_cold
# 需求锁住物理内存,是:true、否:false
bootstrap.memory_lock: false
# 监听地址,用于访问该es
network.host: 192.168.211.130
# es对外提供的http端口,默认 9201
http.port: 9201
# TCP的默认监听端口,默认 9301
transport.tcp.port: 9301
# es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
discovery.seed_hosts: ["192.168.211.130:9300", "192.168.211.130:9301","192.168.211.130:9302"]
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
# es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["192.168.211.130:9300", "192.168.211.130:9301","192.168.211.130:9302"]
# 是否支持跨域,是:true,在使用head插件时需要此配置
http.cors.enabled: true
# “*” 表示支持所有域名
http.cors.allow-origin: "*"
#监控堆栈
xpack.monitoring.collection.enabled: true

 vi  /usr/local/elasticsearch/config/warm.yml

# 设置集群名称,集群内所有节点的名称必须一致。
cluster.name: es-cluster
# 设置节点名称,集群内节点名称必须唯一。
node.name: node-warm
# 表示该节点会不会作为主节点,true表示会;false表示不会
node.master: true
# 当前节点是否用于存储数据,是:true、否:false
node.data: true
# 索引数据存放的位置
path.data: /usr/share/elasticsearch/data_warm
# 日志文件存放的位置
path.logs: /usr/share/elasticsearch/logs_warm
# 需求锁住物理内存,是:true、否:false
bootstrap.memory_lock: false
# 监听地址,用于访问该es
network.host: 192.168.211.130
# es对外提供的http端口,默认 9202
http.port: 9202
# TCP的默认监听端口,默认 9302
transport.tcp.port: 9302
# es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
discovery.seed_hosts: ["192.168.211.130:9300", "192.168.211.130:9301","192.168.211.130:9302"]
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
# es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["192.168.211.130:9300", "192.168.211.130:9301","192.168.211.130:9302"]
# 是否支持跨域,是:true,在使用head插件时需要此配置
http.cors.enabled: true
# “*” 表示支持所有域名
http.cors.allow-origin: "*"
#监控堆栈
xpack.monitoring.collection.enabled: true

设置成功后,需要创建索引数据存放data 和日志文件存放logs的目录,命令如下:

mkdir  -p  /usr/share/elasticsearch/data_master
mkdir  -p   /usr/share/elasticsearch/logs_master

mkdir  -p  /usr/share/elasticsearch/data_hot
mkdir  -p   /usr/share/elasticsearch/logs_hot

mkdir  -p  /usr/share/elasticsearch/data_cold
mkdir  -p   /usr/share/elasticsearch/logs_cold

启动elasticsearch,命令如下:

docker run  -d  --network=host --privileged=true  \
-e ES_JAVA_OPTS="-Xms1024m -Xmx1024m"  \
-e TAKE_FILE_OWNERSHIP=true --name  master \
-v /usr/local/elasticsearch/config/master.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /usr/local/elasticsearch/data:/usr/share/elasticsearch/data \
-v /usr/local/elasticsearch/logs:/usr/share/elasticsearch/logs \
-v /usr/local/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
docker.elastic.co/elasticsearch/elasticsearch:7.15.2

docker run  -d  --network=host --privileged=true  \
-e ES_JAVA_OPTS="-Xms1024m -Xmx1024m"  \
-e TAKE_FILE_OWNERSHIP=true --name  hot \
-v /usr/local/elasticsearch/config/hot.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /usr/local/elasticsearch/data:/usr/share/elasticsearch/data \
-v /usr/local/elasticsearch/logs:/usr/share/elasticsearch/logs \
-v /usr/local/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
docker.elastic.co/elasticsearch/elasticsearch:7.15.2

docker run  -d  --network=host --privileged=true  \
-e ES_JAVA_OPTS="-Xms1024m -Xmx1024m"  \
-e TAKE_FILE_OWNERSHIP=true --name  cold \
-v /usr/local/elasticsearch/config/cold.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /usr/local/elasticsearch/data:/usr/share/elasticsearch/data \
-v /usr/local/elasticsearch/logs:/usr/share/elasticsearch/logs \
-v /usr/local/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
docker.elastic.co/elasticsearch/elasticsearch:7.15.2

打开浏览器输入:  http://192.168.211.130:9200

或在终端输入:curl 192.168.211.130:9200

如出现以下集群信息,即安装成功,然后再安装kibana插件

备注:

当docker重启不成功需要再次重启的时候,需要把数据和日志全部删除,删除后再重启容器

4.拉取kibana镜像:docker pull docker.elastic.co/kibana/kibana:7.15.2

         4.1 创建目录

mkdir -p /usr/local/kibana/data && mkdir -p /usr/local/kibana/config && mkdir -p /usr/local/kibana/plugins        

        4.2修改配置文件

vim /usr/local/kibana/config/kibana.yml

server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://192.168.211.130:9200","http://192.168.211.130:9201","http://192.168.211.130:9202", ]
xpack.monitoring.ui.container.elasticsearch.enabled: true

        4.3启动kibana 命令如下:

       docker run --name kibana -v /usr/local/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml -p 5601:5601 -d docker.elastic.co/kibana/kibana:7.15.2

 打开浏览器输入:  http://192.168.211.130:5601,如出现以下信息,则表示kibana安装成功

如kiibana出现以下报错  :Kibana server is not ready yet

方案:

1、检查防火墙是否关闭

2、如防火墙关闭,重启docker应用

3、重启docker应用无效果后,删除并重新设置kibana.yml文件,再重启kibana容器

如出现一下报错:

docker: Error response from daemon: driver failed programming external connectivity on endpoint kibana (24eb2ccb5d07701a6ea156115995e0a8214b39eb1cccb98d0e8f5399875633d4):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 5602 -j DNAT --to-destination 172.17.0.2:5602 ! -i docker0: iptables: No chain/target/match by that name.
 (exit status 1)).
 

重启一下docker 即可,重启命令:systemctl restart docker

建议安装的时候,把防火墙给关闭

关闭命令(仅限本次关闭,下次重启机器后防火墙还是会生效):systemctl  stop  firewalld

开机自启动关闭命令:systemctl  disable   firewalld

开机自启动docker命令:systemctl  enable  docker


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 环境下 docker 安装 ES 7.15.2 和 kibana 7.15.2 详细步骤 的相关文章

  • posix 和 linux 特定函数的 C++ 包装器 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 您知道有什么好的库将 posix 和 linux 函数和结构 例如套接字或文件描述符 包装到 C 类中
  • 字符串常量之前的预期标识符

    有一个这样的程序 include
  • 如何使用Python distutils?

    我用 python 编写了一个快速程序 将 gtk GUI 添加到 cli 程序中 我想知道如何使用 distutils 创建安装程序 因为它只是命令行应用程序的 GUI 前端 所以它只能在 nix 中工作 所以我不担心它是跨平台的 我的主
  • 如何让 HDFS 在 docker swarm 中工作

    我很难让我的 HDFS 设置在 docker swarm 中工作 为了理解这个问题 我将我的设置减少到最低限度 1台物理机 1 个名称节点 1个数据节点 此设置在 docker compose 中运行良好 但在使用相同的 compose 文
  • 很好的 C 库集合? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个很好的 ANSI C 库集合 用于处理向量 哈希映射 二进制树 字符串处理等 Try g
  • 将条目添加到 Linux 内核 .config 文件

    如何手动将 CONFIG XILINX FIXED DEVTREE ADDR y 行添加到 Linux 配置文件中 当我构建内核时它不断被覆盖 您可以通过以下方式构建make CONFIG XILINX FIXED DEVTREE ADDR
  • 移动除一个文件之外的所有文件

    如何移动除一个文件之外的所有文件 我正在寻找类似的东西 mv Linux Old Tux png Linux New 我将旧的东西移动到新的东西文件夹中 除了Tux png 符号代表否定 有一些工具可以完成这项工作吗 如果您使用 bash
  • 构建 Flask docker 镜像时分配端口

    我最近使用 Flask 创建了一个应用程序 并将 py 文件放入 docker 容器中 然而 我对人们分配端口的在线案例感到困惑 首先在我写的 py 文件的底部 if name main app run host 0 0 0 0 port
  • Visual Studio 代码中的“Git:gpg 未能签署数据”

    全新安装 Linux 后 我尝试设置我的环境 并且不断收到Git gpg failed to sign the data在本地提交更改时出错 我使用的是 Visual Studio Code 专有版本 而不是开源版本 gitconfig u
  • 如何在 Ubuntu 16.04 上设置 Docker + PhpStorm + xdebug

    我的问题是当我开始监听端口时 xdebug 不起作用 我认为 PhpStorm 无法与 xdebug 链接 我刚刚得到调试器面板变量不可用 看来 xdebug 没有正确设置 使用的软件及版本 Ubuntu 16 04 LTS Docker
  • docker dynamodb -sharedDb 选项

    我正在尝试使用官方在本地主机上启动 dynamodbrepo https hub docker com r amazon dynamodb local 我尝试了以下方法 docker run p 8000 8000 amazon dynam
  • Python select() 行为很奇怪

    我在理解 select select 的行为时遇到一些困难 请考虑以下 Python 程序 def str to hex s def dig n if n gt 9 return chr 65 10 n else return chr 48
  • 使用vim,如何快速刷新正在处理的网页?

    我已经使用 VIM 几个星期了 同时处理各种网络语言 我真的很喜欢它 我发现必须点击或单击浏览器并刷新页面才能看到代码更改的效果 这很麻烦 更烦人的是 因为我使用的是 Virtual Box 而且我倾向于在主机系统上处理 PDF 文件 因此
  • 使用 sysfs 的 Linux 用户空间 GPIO 中断

    我想使用 sysfs 在用户空间上使用 GPIO 中断 我使用这些命令 root at91 gpio109 gt echo 109 gt export root at91 gpio109 gt cd gpio109 root at91 gp
  • 强制 shell 在 SunGrid 引擎中使用 conda 变量中的 python [重复]

    这个问题在这里已经有答案了 我正在尝试在 SunGrid 引擎中执行 python 文件 并且从 anaconda3 环境变量中执行它 我的代码很简单 from future import print function import url
  • 使用 Python for Linux 模拟按键事件

    我正在编写一个脚本来自动运行特定模型 当模型失败时 它会等待用户输入 Enter 键 我可以检测到模型何时失败 但我无法使用 python 在 Linux 上 来模拟按键事件 Windows 有 SendKeys 库来执行此操作 但我想知道
  • UNIX 域 STREAM 和 DATAGRAM 套接字之间的区别?

    这个问题是NOTSTREAM 类型和 DATAGRAM 类型 INTERNET 套接字之间的区别 我知道 STREAM 套接字使用 TCP 数据报套接字使用 UDP 以及所有 TCP UDP 内容 按顺序到达的数据包 ACK NACK 等
  • Gitlab CI/CD 管道给出 Dockerfile 错误

    晚上好 我正在尝试将我的nodeJS应用程序部署到我的Digital Ocean Server 它说找不到我的Dockerfile 我确实检查过 Dockerfile 没有 txt 扩展名 任何指导表示赞赏 我在 Gitlab 项目中设置了
  • 在 Ubuntu 中的 Docker 中运行 GUI 程序

    我曾经使用这样的命令运行程序 docker run ti name wireshark e DISPLAY DISPLAY v tmp X11 unix tmp X11 unix v HOME Xauthority root Xauthor
  • 无法在 Centos 上安装 php-mysqli 扩展

    我正在尝试将 mysqli 扩展安装到 php yum install php mysqli 我收到下一个错误 Transaction Check Error file usr share mysql charsets Index xml

随机推荐

  • Linux——netstat

    netstat是一个功能很强大的网络信息统计工具 它可以打印本地网卡接口上的全部连接 路由表信息 网卡接口信息等 我们主要利用的是上述功能中的第一个 即显示TCP连接及其状态信息 毕竟 要获得路由表信息和网卡接口信息 我们可以使用输出内容更
  • Vue项目配置文件(.npmrc、.env、. cz-config.js、commitlint.config.js)

    一 npmrc npmrc 文件位于项目的根目录 即 node modules 和 package json 的兄弟 作为npm运行时的配置文件 registry为npm包注册源地址 legacy peer deps忽略相同modules的
  • django+vue项目搭建,前后端通信打通,

    文章目录 django 环境搭建 1 创建django骨架项目 2 创建应用 3 试着启动项目 验证环境OK 4 基础配置 admin py settings py 前端项目搭建 1 安装vue cli 2 创建前端项目 3 创建时候选什么
  • javascript 纯前端实现汉字转拼音 —— pinyin-pro 库

    一般实现汉字转拼音的功能都是请求服务端 api 实现 而对于一些比较简单的需求 我们可以通过一个 npm 工具包 pinyin pro 纯前端实现中文汉字转拼音的功能 特色功能 支持汉字 词语 句子多种格式输入获取 获取拼音 获取声母 获取
  • vue-quill-editor设置字体大小

    项目中需要用到富文本编辑器 用的Vue 所以选择了vue quill editor这个富文本编辑器 发现字体只有几种大小可以选择 满足不了产品的需求 研究了半天终于改好了 主要是需要更改配置文件 以及对应的CSS和js文件 editor v
  • Open judge程序设计A_分支结构

    include
  • 题目0081-新工号系统

    新工号系统 题目描述 3020年空间通信集团的员工突破20亿人 即将遇到现有工号不够的窘境 现在你负责调研新工号系统 继承历史传统 新的工号系统由小写英文字母a z和数字0 9两部分构成 新工号由一段英文字母开头 之后跟随一段数字 比如 a
  • 因果2-潜在结果框架

    因果2 潜在结果框架 摘要 从因果到统计 我们需要走多久 上一章我们从因果和统计学的关系出发 初步了解了一个经典因果框架 潜在结果框架 今天我们继续学习这个框架 图1是上周我们留下的 吃药治头疼 的数据表格 我们如何从该表格中求出平均处理效
  • 深入探索 Dubbo 的 AOT 技术及其技术演进历程

    引言 随着云原生和微服务架构的兴起 高性能和低延迟成为了开发者们的关注重点 在 Java 生态系统中 Spring 和 Dubbo 是两个备受青睐的框架 它们为开发者提供了强大的功能和灵活性 为了进一步提升性能 Dubbo 团队引入了 AO
  • 开发工具之 Snipaste(超级截图工具)

    snipaste工具是一款开源免费的超级截图工具 这里小编强烈推荐此工具的使用 前言 当你使用ALT TAB习惯性的来回切屏的时候 其实在这个过程中 仔细想想是不是比较累 这样子做久了很容易导致疲劳 所以小编强推贴图功能 好了废话不多说 直
  • 5 insanely great books about mathematics you should read.

    本文转载至 http wp kjro se 2013 12 27 5 insanely great books about mathematics you should read 翻译请参考 http blog jobbole com 55
  • Android Studio 无法打开虚拟机

    Emulator PANIC Cannot find AVD system path Please define ANDROID SDK ROOT 刚安装好Android Studio 却发现无法打开虚拟机 报错信息为 Emulator P
  • Kafka:主题创建、分区修改查看、生产者、消费者

    文章目录 Kafka后台操作 1 主题 2 分区 3 生产者 4 消费者组 Kafka后台操作 1 主题 1 创建主题 bin kafka topics sh create bootstrap server hadoop102 9092 r
  • JavaScript 取消默认事件、阻止事件冒泡的方法

    首先页面上创建一个a标签 a href 默认事件 a 然后给body加一个点击事件 document body nclick function alert body 当我点击这个a标签的时候会有两个我们不想发生的事情 1 浏览器地址尾部出现
  • FreeSurfer和FSL的安装和使用(脑部图像去除头骨+对图像和label同时进行仿射对齐)教程

    FreeSurfer当前只支持Linux系统和Mac OS 我所使用的系统是Ubuntu 16 0 4 FreeSurfer的安装耗时较小 但是在处理时耗时较长 可能需要数个小时 甚至一天 这个取决于机器性能 但是和GPU好像没太大关系 下
  • (转)基于FPGA技术的FAST行情解码研究

    http mp weixin qq com s BviH6gAqej6lHd9XxFKUfg 交易技术前沿 基于FPGA技术的FAST行情解码研究 钟浪辉 陈敏 陈坚 刘啸林 秦轶轩 李道双 2017 09 08 上交所技术服务 本文选自
  • 数据库分表分库理论

    1 数据切分 关系型数据库本身比较容易成为系统瓶颈 单机存储容量 连接数 处理能力都有限 当单表的数据量达到1000W或100G以后 由于查询维度较多 即使添加从库 优化索引 做很多操作时性能仍下降严重 此时就要考虑对其进行切分了 切分的目
  • 第十四届蓝桥杯模拟赛(第一期)—保姆级解释(C语言版)

    1 二进制位数 问题描述 十进制整数 2 在十进制中是 1 位数 在二进制中对应 10 是 2 位数 十进制整数 22 在十进制中是 2 位数 在二进制中对应 10110 是 5 位数 请问十进制整数 2022 在二进制中是几位数 incl
  • cmake(03) : 平台,架构及编译器判断

    1 cmake检测平台架构及编译器的原理 cmake在检测编译器的时候 用了一种很暴力的方法 可以在不运行实际代码的情况下直接知道目标平台的信息 做法是这样的 首先生成一个 cpp文件 包含一些平台检测的 ifdef Identify kn
  • Linux 环境下 docker 安装 ES 7.15.2 和 kibana 7.15.2 详细步骤

    目标 在一台机器内设置3个ES节点和1个kibana节点正常运行 条件 本机器内的IP 192 168 211 130 1 首先安装docker 步骤详见链接https blog csdn net m0 55380752 article d