首页 > 其他分享 >Docker安装部署ElasticSearch

Docker安装部署ElasticSearch

时间:2023-07-26 18:12:16浏览次数:47  
标签:部署 kibana -- elasticsearch ElasticSearch Docker data docker es

参考文档:

https://blog.csdn.net/qq_37726813/article/details/129917352

https://blog.csdn.net/yangkei/article/details/126837326

https://blog.csdn.net/yangkei/article/details/126837326

1.部署单点ElasticSearch

因为我们还需要部署kibana容器,因此需要让ElasticSearchkibana容器互联。这里先创建一个网络:

docker network create es-net

1.2.拉取镜像

考虑到ElasticSearch的兼容性,这里ElasticSearchkibana统一下载8.8.1版本

# 拉取镜像
docker pull elasticsearch:8.8.1

1.3.第一次执行docker脚本

docker run -it \
    -p 9200:9200 \
    -p 9300:9300 \
    --name es \
    --net es-net \
    -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
    -e "discovery.type=single-node" \
    -e LANG=C.UTF-8 \
    -e LC_ALL=C.UTF-8 \
    elasticsearch:8.6.2

1.4.创建Elasticsearch挂载目录

mkdir -p ~/data/elasticsearch

1.5.给创建的文件夹授权

sudo chown -R 1000:1000 ~/data/elasticsearch

1.6.将容器内的文件复制到主机上

docker cp es:/usr/share/elasticsearch/config ~/data/elasticsearch
docker cp es:/usr/share/elasticsearch/data ~/data/elasticsearch
docker cp es:/usr/share/elasticsearch/plugins ~/data/elasticsearch
docker cp es:/usr/share/elasticsearch/logs ~/data/elasticsearch

1.7.删除容器

docker rm -f es

1.8.修改docker脚本,增加-v挂载目录和-d参数

docker run -d \
	--name es \
    --privileged \
    --network es-net \
    -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
    -e "discovery.type=single-node" \
 	-e LANG=C.UTF-8 \
 	-e LC_ALL=C.UTF-8 \
    -p 9200:9200 \
    -p 9300:9300 \
    -v es-data:~/data/elasticsearch/data \
    -v es-plugins:~/data/elasticsearch/plugins \
    -v es-logs:~/data/elasticsearch/logs \
elasticsearch:8.8.1

1.9.修改配置~/data/elasticsearch/config/elasticsearch.yml

增加:xpack.monitoring.collection.enabled: true
说明:添加这个配置以后在kibana中才会显示联机状态,否则会显示脱机状态

1.10.重启容器

docker restart es

1.11.Elasticsearch.8X以上默认开启了X-Pack安全功能

说明:请求Elasticsearch必须使用https

测试:https://127.0.0.1:9200/

1.12.如果账户密码忘了,设置修改账号密码如下:

docker exec -it es /bin/bash

cd /usr/share/elasticsearch/bin
./elasticsearch-setup-passwords interactive

 ElasticSearch设置后账户:elastic,密码:123456

 

2.部署kibana

kibana可以给我们提供一个ElasticSearch的可视化界面,便于我们使用。

2.1.拉取镜像

docker pull kibana:8.8.1

2.2.第一次执行docker启动脚本

docker run -it \
 -d \
 --restart=always \
 --log-driver json-file \
 --log-opt max-size=100m \
 --log-opt max-file=2 \
 --name kibana \
 -p 5601:5601 \
 --net es-net \
kibana:8.8.1  

2.3.创建kibana挂载目录

mkdir -p ~/data/kibana

2.4.给创建的文件夹授权

sudo chown -R 1000:1000 ~/data/kibana

2.5.将容器内的文件复制到主机上

docker cp kibana:/usr/share/kibana/config ~/data/kibana
docker cp kibana:/usr/share/kibana/data ~/data/kibana
docker cp kibana:/usr/share/kibana/plugins ~/data/kibana
docker cp kibana:/usr/share/kibana/logs ~/data/kibana

2.6.删除容器

docker rm -f kibana

2.7.修改配置文件/home/elk8.6.2/kibana/config/kibana.yml:

  • 增加:i18n.locale: “zh-CN”
  • 修改:elasticsearch.hosts: [‘https://172.20.0.2:9200’],将IP改成elasticsearchdocker ip,注意一定要用https
  • 增加,不验证ssl:elasticsearch.ssl.verificationMode: none
  • 设置用户名密码:lasticsearch.username: "kibana_system"、elasticsearch.password: "123456"

 

2.8.修改docker启动脚本,增加挂载目录

docker run -it \
 -d \
 -e ELASTICSEARCH_HOSTS=https://es:9200 \
 -p 5601:5601 \
 --restart=always \
 --log-driver json-file \
 --log-opt max-size=100m \
 --log-opt max-file=2 \
 --name kibana \
 --net es-net \
 -v ~/data/kibana/config:/usr/share/kibana/config \
 -v ~/data/kibana/data:/usr/share/kibana/data \
 -v ~/data/kibana/plugins:/usr/share/kibana/plugins \
 -v ~/data/kibana/logs:/usr/share/kibana/logs \
kibana:8.8.1

2.9.查看kibana日志

docker logs -f kibana

此时,在浏览器输入地址访问:http://127.0.0.1:5601,即可看到结果。

账号密码是kibana.yml中配置的用户名密码

2.10.DevTools

kibana中提供了一个DevTools界面:

这个界面中可以编写DSL来操作elasticsearch。并且对DSL语句有自动补全功能。

 

4.部署es集群

es集群可以直接使用docker-compose来完成,不过要求你的Linux虚拟机至少有4G的内存空间

首先编写一个docker-compose文件,内容如下:

 

version: '2.2'
services:
  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.6.2
    container_name: es01
    environment:
      - node.name=es01
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es02,es03
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data01:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - elastic
  es02:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.6.2
    container_name: es02
    environment:
      - node.name=es02
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es01,es03
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data02:/usr/share/elasticsearch/data
    networks:
      - elastic
  es03:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.6.2
    container_name: es03
    environment:
      - node.name=es03
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es01,es02
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data03:/usr/share/elasticsearch/data
    networks:
      - elastic

volumes:
  data01:
    driver: local
  data02:
    driver: local
  data03:
    driver: local

networks:
  elastic:
    driver: bridge

运行docker-compose以启动集群:

docker-compose up

 

遇到的问题:

1、es 登陆时需要用https

2、es 账号密码需要重置,

设置账号密码
docker exec -it es /bin/bash
cd /usr/share/elasticsearch/bin
./elasticsearch-setup-passwords interactive

4、kibana 启动报错:

参考文档:https://blog.csdn.net/yangkei/article/details/126837326 

[2022-09-06T19:47:01.491-04:00][ERROR][elasticsearch-service] Unable to retrieve version information from Elasticsearch nodes. security_exception: [security_exception] 
Reason: unable to authenticate user [kibana_system] for REST request [/_nodes?filter_path=nodes.*.version%2Cnodes.*.http.publish_address%2Cnodes.*.ip]
 
1. kibana启动报错,kibana_system用户认证

[2022-09-06T19:47:01.491-04:00][ERROR][elasticsearch-service] Unable to retrieve version information from Elasticsearch nodes. security_exception: [security_exception] Reason: unable to authenticate user [kibana_system] for REST request [/_nodes?filter_path=nodes.*.version%2Cnodes.*.http.publish_address%2Cnodes.*.ip]

解决办法:设置kibana_system用户的密码。
[es@goya1 cert]$ elasticsearch-reset-password -u kibana_system -i
warning: ignoring JAVA_HOME=/app/elasticsearch/jdk; using bundled JDK
This tool will reset the password of the [kibana_system] user.
You will be prompted to enter the password.
Please confirm that you would like to continue [y/N]y
Enter password for [kibana_system]: changeit123
Re-enter password for [kibana_system]: changeit123
Password for the [kibana_system] user successfully reset.

修改,确认kibana.yml文件的配置部分:
# If your Elasticsearch is protected with basic authentication, these settings provide
# the username and password that the Kibana server uses to perform maintenance on the Kibana
# index at startup. Your Kibana users still need to authenticate with Elasticsearch, which
# is proxied through the Kibana server.
elasticsearch.username: "kibana_system"
elasticsearch.password: "changeit123"

  

 






 
 



  


 

标签:部署,kibana,--,elasticsearch,ElasticSearch,Docker,data,docker,es
From: https://www.cnblogs.com/luliang888/p/17583235.html

相关文章

  • xxl-job docker 搭建&接入
    项目地址:https://github.com/xuxueli/xxl-job1初始化数据库新建表sql语句在项目里/xxl-job/doc/db/tables_xxl_job.sql在目标数据库执行语句建库、建表##XXL-JOBv2.4.1-SNAPSHOT#Copyright(c)2015-present,xuxueli.CREATEdatabaseifNOTEXISTS`xxl_job`......
  • docker如何利用iptables限制外网访问
    先看官网:点击跳转如果有问题,也别来问我,我也不懂,下面自己感悟一下,或者有iptables的大佬,欢迎指教还有什么问题,想咨询的,加群:582337768。这个群不是我的,但是我在里面,但是还是那句话,我也不懂。然后开始了,首先使用DOCKER-USER的chain来进行操作。DOCKER-USER该chain在ubuntu下面,......
  • centos7使用docker安装sentry
    来源:https://www.likecs.com/show-307736478.html 环境:centos7、docker19基础环境需求*Docker17.05.0+*Compose1.23.0+流程:docker安装-->docker-compose安装-->clone项目-->安装sentry-->启动sentry-->访问验证(可以直接查看安装文档 moreonpremise/README.md )1、s......
  • 【docker】Portainer安装配置
    1、官网Welcome-PortainerDocumentation   参考链接:portainer安装,配置,使用-Net码畜-博客园......
  • Ubuntu18.04离线安装cuda,docker和nvidia-docker
    近来接手一个项目,服务器没有外网,还缺少一堆基础工具,离线安装相关依赖十分头疼。在此两篇博客记录一下此次经历。各部件的依赖如下:Nvida-docker需要CUDA驱动,安装CUDA需要GCC编译库,安装GCC需要用到make工具(make非必须)有关GCC依赖与make工具安装,请看另一篇博客。目录1.离线安装......
  • openGauss笔记 - 实现docker安装openGauss,使用Data Studio连接
    openGauss笔记Docker安装openGauss拉取openGauss镜像openGauss5.0.0有企业版和轻量版。轻量版定位是在软硬件资源受限场景下仍可使用openGauss,但是保留了企业版大部分的特性,轻量版通过参数默认关闭的特性:Ustore、Asp、增量检查点、双写、列存、段页式存储等,还有些不支持的特......
  • k8s 部署dashboard 2.7.0
    查看dashboard版本兼容性Kubernetesversion1.221.231.241.25Compatibility???✓准备dashboardyaml文件#wgethttps://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml准备image#dockerpulldocker.io/kubernete......
  • centeros7 docker安装记录
    centeros7Docker安装记录安装Docker安装必要的系统工具yuminstall-yyum-utilsyuminstall-ydevice-mapper-persistent-datayuminstall-ylvm2添加软件源信息官网提供的软件源速度比较慢,这里使用阿里云的软件源。sudoyum-config-manager--add-repohttp://mirro......
  • 【容器架构】你知道有 Docker 为什么还要 K8s 吗?
    ......
  • centos7 用docker 部署 nacos集群--以mysql持久化--以nginx代理
     创建一个文件夹,把四个配置文件放进去,然后运行:dockercompose-f-dnacos.ymlupmysql-schema.sqlnacos.confnacos.envnacos.yml  mysql-schema.sql内容:/**Copyright1999-2018AlibabaGroupHoldingLtd.**LicensedundertheApacheLicense,Version2.......