栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

docker 安装 Elasticsearch 和 Kibana

docker 安装 Elasticsearch 和 Kibana

此方案仅用于开发、测试环境。

仓库地址:
Elasticsearch:https://hub.docker.com/_/elasticsearch
Kibana: https://hub.docker.com/_/kibana

安装 Elasticsearch

参考:Install Elasticsearch with Docker | Elasticsearch Guide [7.16] | Elastic

拉取镜像

# Elasticsearch 7.16.2 基础镜像是 ubuntu:20.04
docker pull elasticsearch:7.16.2

# kibana:7.16.2 基础镜像是 centos:8
docker pull kibana:7.16.2

如需定制自己的 docker 镜像可参考:
dockerfiles/Dockerfile at v7.16.2 · elastic/dockerfiles (github.com)

创建 elasticsearch 数据挂载目录

export DIR_ES=${HOME}"/dockers/elasticsearch"
mkdir -p ${DIR_ES}/data
mkdir -p ${DIR_ES}/config
mkdir -p ${DIR_ES}/plugins


cd ${DIR_ES}
sudo chown -R 1000:0 data config plugins

创建 Kibana 配置文件 kibana.yml

# Default kibana configuration for docker target
server.name: kibana
server.host: "0.0.0.0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: ["http://es01:9200"]
monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN"
# 设置文件权限
sudo chown 1000:1000 kibana.yml

容器编排 docker-compose.yml

version: "3"

networks:
  esnet:
    driver: bridge

services:
  es01:
    image: elasticsearch:7.16.2
    container_name: es01
    environment:
      - USER_UID=1000
      - USER_GID=0
      - node.name=es01
      - cluster.name=es-docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms64m -Xmx512m"
      - "discovery.type=single-node"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    restart: always
    volumes:
      - ./data:/usr/share/elasticsearch/data
#      - ./config:/usr/share/elasticsearch/config
      - ./plugins:/usr/share/elasticsearch/plugins
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "9200:9200"
      - "9300:9300"
    networks:
      - esnet
  kibana:
    image: kibana:7.16.2
    container_name: kibana7162
    environment:
      - USER_UID=1000
      - USER_GID=1000
    restart: always
    volumes:
      - ./kibana.yml:/usr/share/kibana/config/kibana.yml
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "5601:5601"
    depends_on:
      - es01
    networks:
      - esnet

ES_JAVA_OPTS:限制使用内存,不建议生产环境使用。discovery.type=single-node:单节点运行。

检查配置

docker-compose config

启动服务

docker-compose up -d

查看启动日志

docker-compose logs -f

测试

curl -X GET "localhost:9200/_cat/nodes?v=true&pretty"

浏览器访问 Kibana:http://host-ip:5601,其中 “host-ip” 需替换为你的主机 IP。

注:以上配置没有把 Elasticsearch 的配置文件目录 config 映射到宿主机,删除容器后配置会丢失。如需保留配置,可将容器内 config 目录 复制到宿主机:

docker cp -a es01:/usr/share/elasticsearch/config .

然后取消编排文件中 - ./config:/usr/share/elasticsearch/config 行的注释,重启容器。

异常处理

(1) docker 启动 elasticsearch 异常 Exception in thread "main" java.nio.file.NoSuchFileException: /usr/share/elasticsearch/config/jvm.options

原因分析
配置了 config 目录的挂载数据卷,而启动时宿主机的挂载数据文件夹中并没有 jvm.options 文件,找不到文件报错。

解决方案
先将挂载 conf 目录的配置注释,启动 elasticsearch,启动成功后将容器中的 config 文件夹下的文件复制到宿主机,然后取消注释重新启动即可。

docker cp -a es01:/usr/share/elasticsearch/config .

– End –

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/742812.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号