文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

docker怎么安装Elasticsearch集群并设置密码

2023-06-05 02:48

关注

本文小编为大家详细介绍“docker怎么安装Elasticsearch集群并设置密码”,内容详细,步骤清晰,细节处理妥当,希望这篇“docker怎么安装Elasticsearch集群并设置密码”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

一些基础配置

es需要修改linux的一些参数。

设置vm.max_map_count=262144

sudo vim /etc/sysctl.confvm.max_map_count=262144

不重启, 直接生效当前的命令

sysctl -w vm.max_map_count=262144

es的data和logs目录需要给1000的用户授权, 我们假设安装3个实力的es集群,先创建对应的数据存储文件

mkdir -p es01/datamkdir -p es01/logsmkdir -p es02/datamkdir -p es02/logsmkdir -p es03/datamkdir -p es03/logs## es的用户id为1000,这里暂且授权给所有人好了sudo chmod 777 es* -r

关于版本和docker镜像

elasticsearch分几种licenses,其中open source和basic是免费的, 而在6.8之后安全功能才开始集成在es的basic授权上。

docker怎么安装Elasticsearch集群并设置密码

basic对应docker镜像为

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.6.2

同时dockerhub同步为elasticsearch. 我们直接拉取elasticsearch:7.6.2就好。

开始

安装文件均放在github: https://github.com/ryan-miao/docker-china-source/tree/master/docker-elasticsearch

首先,创建docker-compose.yml

version: '2.2'services: es01:  image: elasticsearch:7.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:   - ./es01/data:/usr/share/elasticsearch/data   - ./es01/logs:/usr/share/elasticsearch/logs   - ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml   - ./elastic-certificates.p12:/usr/share/elasticsearch/config/elastic-certificates.p12  ports:   - 9200:9200  networks:   - elastic es02:  image: elasticsearch:7.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:   - ./es02/data:/usr/share/elasticsearch/data   - ./es02/logs:/usr/share/elasticsearch/logs   - ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml   - ./elastic-certificates.p12:/usr/share/elasticsearch/config/elastic-certificates.p12  ports:   - 9201:9200  networks:   - elastic es03:  image: elasticsearch:7.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:   - ./es03/data:/usr/share/elasticsearch/data   - ./es03/logs:/usr/share/elasticsearch/logs   - ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml   - ./elastic-certificates.p12:/usr/share/elasticsearch/config/elastic-certificates.p12  ports:   - 9202:9200  networks:   - elastic kib01:  depends_on:    - es01  image: kibana:7.6.2  container_name: kib01  ports:   - 5601:5601  environment:   elasticsearch_url: http://es01:9200   elasticsearch_hosts: http://es01:9200  volumes:   - ./kibana.yml:/usr/share/kibana/config/kibana.yml  networks:   - elasticnetworks: elastic:  driver: bridge

关于elasticsearch.yml

内容如下

network.host: 0.0.0.0xpack.security.enabled: truexpack.security.transport.ssl.enabled: truexpack.security.transport.ssl.keystore.type: pkcs12xpack.security.transport.ssl.verification_mode: certificatexpack.security.transport.ssl.keystore.path: elastic-certificates.p12xpack.security.transport.ssl.truststore.path: elastic-certificates.p12xpack.security.transport.ssl.truststore.type: pkcs12xpack.security.audit.enabled: true

关于证书elastic-certificates.p12

es提供了生成证书的工具elasticsearch-certutil,我们可以在docker实例中生成它,然后复制出来,后面统一使用。

首先运行es实例

sudo docker run -dit --name=es elasticsearch:7.6.2 /bin/bash

进入实例内部

sudo docker exec -it es /bin/bash

生成ca: elastic-stack-ca.p12

[root@25dee1848942 elasticsearch]# ./bin/elasticsearch-certutil cathis tool assists you in the generation of x.509 certificates and certificatesigning requests for use with ssl/tls in the elastic stack.the 'ca' mode generates a new 'certificate authority'this will create a new x.509 certificate and private key that can be usedto sign certificate when running in 'cert' mode.use the 'ca-dn' option if you wish to configure the 'distinguished name'of the certificate authorityby default the 'ca' mode produces a single pkcs#12 output file which holds:  * the ca certificate  * the ca's private keyif you elect to generate pem format certificates (the -pem option), then the output willbe a zip file containing individual files for the ca certificate and private keyplease enter the desired output file [elastic-stack-ca.p12]: enter password for elastic-stack-ca.p12 :

再生成cert: elastic-certificates.p12

[root@25dee1848942 elasticsearch]# ./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12this tool assists you in the generation of x.509 certificates and certificatesigning requests for use with ssl/tls in the elastic stack.the 'cert' mode generates x.509 certificate and private keys.

这个生成elastic-certificates.p12 就是我们需要使用的。

复制出证书, ctrl+d退出容器内部

sudo docker cp es:/usr/share/elasticsearch/elastic-certificates.p12 .# 关闭这个容器sudo docker kill essudo docker rm es

如此获取了证书。

生成密码

我们首先要启动es集群,去里面生成密码。

sudo docker-compose up

然后进入其中一台

sudo docker exec -it es01 /bin/bash

生成密码用auto, 自己设置用 interactive

[root@cfeeab4bb0eb elasticsearch]# ./bin/elasticsearch-setup-passwords -hsets the passwords for reserved userscommands--------auto - uses randomly generated passwordsinteractive - uses passwords entered by a usernon-option arguments:command       option       description    ------       -----------    -e <keyvaluepair> configure a setting-h, --help     show help     -s, --silent    show minimal output-v, --verbose   show verbose output[root@cfeeab4bb0eb elasticsearch]# ./bin/elasticsearch-setup-passwords autoinitiating the setup of passwords for reserved users elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user.the passwords will be randomly generated and printed to the console.please confirm that you would like to continue [y/n]ychanged password for user apm_systempassword apm_system = yxvzet9b2jedujyp66wschanged password for user kibanapassword kibana = 8nnthbj0n02idatghiduchanged password for user logstash_systempassword logstash_system = 9nidge7ksv8sqidsk8djchanged password for user beats_systempassword beats_system = qeuvaf1vealpjhfeuojjchanged password for user remote_monitoring_userpassword remote_monitoring_user = dtzcrckvtzsinrn3tw3dchanged password for user elasticpassword elastic = q5f2qnfujqyvzpiz57mz

使用密码

浏览器访问localhost:9200/9201/9202 需要输入账号

输入对应的elastic/password就好

浏览器访问localhost:5601

docker怎么安装Elasticsearch集群并设置密码

忘记密码

如果生成后忘记密码了怎么办, 可以进入机器去修改。

进入es的机器

sudo docker exec -it es01 /bin/bash

创建一个临时的超级用户ryanmiao

./bin/elasticsearch-users useradd ryan -r superuserenter new password: error: invalid password...passwords must be at least [6] characters long[root@cfeeab4bb0eb elasticsearch]# ./bin/elasticsearch-users useradd ryan -r superuserenter new password: retype new password:

用这个用户去修改elastic的密码:

curl -xput -u ryan:ryan123 http://localhost:9200/_xpack/security/user/elastic/_password -h "content-type: application/json" -d '{ "password": "q5f2qnfujqyvzpiz57mz"}'

读到这里,这篇“docker怎么安装Elasticsearch集群并设置密码”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯