docker安装Elasticsearch7.6集群并设置密码

docker安装Elasticsearch7.6集群并设置密码,第1张

docker安装Elasticsearch7.6集群并设置密码

本文主要介绍docker安装Elasticsearch7.6集群和设置密码。通过示例代码进行了非常详细的介绍,对于大家的学习或者工作都有一定的参考价值。有需要的朋友下面跟边肖学习。

Elasticsearch从6.8开始,允许免费用户使用X-Pack的安全功能。装es之前是裸奔。接下来,记录配置安全认证的方法。

为了简化物理安装过程,我们将使用docker来安装我们的服务。

一些基本配置

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

设置vm.max_map_count=262144

sudovim/etc/sysctl.conf vm.max_map_count=262144

不,重新启动,当前命令将直接生效。

sysctl-wvm.max_map_count=262144

Esdata和日志目录需要授权给1000个用户。我们假设安装了三个强大的es集群,并且首先创建了相应的数据存储文件。

mkdir-pes01/data mkdir-pes01/logs mkdir-pes02/data mkdir-pes02/logs mkdir-pes03/data mkdir-pes03/logs ##es的用户id为1000,这里暂且授权给所有人好了 sudochmod777es*-R

关于版本和docker映像

Elasticsearch分为几种授权,其中开源和基础都是免费的,但6.8以后,安全功能开始集成在es的基础授权上。

基本的docker图像是

dockerpulldocker.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: -elastic networks: elastic: driver:bridge

关于elasticsearch.yml

内容如下

network.host:0.0.0.0 xpack.security.enabled:true xpack.security.transport.ssl.enabled:true xpack.security.transport.ssl.keystore.type:PKCS12 xpack.security.transport.ssl.verification_mode:certificate xpack.security.transport.ssl.keystore.path:elastic-certificates.p12 xpack.security.transport.ssl.truststore.path:elastic-certificates.p12 xpack.security.transport.ssl.truststore.type:PKCS12 xpack.security.audit.enabled:true
  • 将network.host设置为允许其他ip访问并解除ip绑定。
  • Xpack.security是一个安全相关的配置,其中ssl证书需要自己生成。
  • 关于证书elastic-certificates.p12

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

    首先运行es实例。

    sudodockerrun-dit--name=eselasticsearch:7.6.2/bin/bash

    输入实例。

    sudodockerexec-ites/bin/bash

    生成ca:elastic-stack-ca.p12

    [root@25dee1848942elasticsearch]#./bin/elasticsearch-certutilca ThistoolassistsyouinthegenerationofX.509certificatesandcertificate signingrequestsforusewithSSL/TLSintheElasticstack. The'ca'modegeneratesanew'certificateauthority' ThiswillcreateanewX.509certificateandprivatekeythatcanbeused tosigncertificatewhenrunningin'cert'mode. Usethe'ca-dn'optionifyouwishtoconfigurethe'distinguishedname' ofthecertificateauthority Bydefaultthe'ca'modeproducesasinglePKCS#12outputfilewhichholds: *TheCAcertificate *TheCA'sprivatekey IfyouelecttogeneratePEMformatcertificates(the-pemoption),thentheoutputwill beazipfilecontainingindividualfilesfortheCAcertificateandprivatekey Pleaseenterthedesiredoutputfile[elastic-stack-ca.p12]: Enterpasswordforelastic-stack-ca.p12:

    再次生成cert:elastic-certificates.p12。

    [root@25dee1848942elasticsearch]#./bin/elasticsearch-certutilcert--caelastic-stack-ca.p12 ThistoolassistsyouinthegenerationofX.509certificatesandcertificate signingrequestsforusewithSSL/TLSintheElasticstack. The'cert'modegeneratesX.509certificateandprivatekeys.

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

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

    sudodockercpes:/usr/share/elasticsearch/elastic-certificates.p12. #关闭这个容器 sudodockerkilles sudodockerrmes

    证书就这样获得了。

    生成密码

    首先,我们必须启动es集群,并进入内部生成密码。

    sudodocker-composeup

    然后进入其中一个。

    sudodockerexec-ites01/bin/bash

    Auto用于生成密码,interactive用于设置密码。

    [root@cfeeab4bb0ebelasticsearch]#./bin/elasticsearch-setup-passwords-h Setsthepasswordsforreservedusers Commands -------- auto-Usesrandomlygeneratedpasswords interactive-Usespasswordsenteredbyauser Non-optionarguments: command OptionDescription ----------------- -E<KeyValuePair>Configureasetting -h,--helpShowhelp -s,--silentShowminimaloutput -v,--verboseShowverboseoutput [root@cfeeab4bb0ebelasticsearch]#./bin/elasticsearch-setup-passwordsauto Initiatingthesetupofpasswordsforreserveduserselastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user. Thepasswordswillberandomlygeneratedandprintedtotheconsole. Pleaseconfirmthatyouwouldliketocontinue[y/N]y Changedpasswordforuserapm_system PASSWORDapm_system=YxVzeT9B2jEDUjYp66Ws Changedpasswordforuserkibana PASSWORDkibana=8NnThbj0N02iDaTGhidU Changedpasswordforuserlogstash_system PASSWORDlogstash_system=9nIDGe7KSV8SQidSk8Dj Changedpasswordforuserbeats_system PASSWORDbeats_system=qeuVaf1VEALpJHfEUOjJ Changedpasswordforuserremote_monitoring_user PASSWORDremote_monitoring_user=DtZCrCkVTZsinRn3tW3D Changedpasswordforuserelastic PASSWORDelastic=q5f2qNfUJQyvZPIz57MZ

    使用密码

    浏览器需要输入账号才能访问本地主机:9200/9201/9202。

    只需输入相应的d性/密码。

    浏览器访问本地主机:5601

    忘记了您的密码

    生成后忘记密码怎么办?你可以进入机器修改它。

    进入es的机器

    sudodockerexec-ites01/bin/bash

    创建临时超级用户RyanMiao。

    ./bin/elasticsearch-usersuseraddryan-rsuperuser Enternewpassword: ERROR:Invalidpassword...passwordsmustbeatleast[6]characterslong [root@cfeeab4bb0ebelasticsearch]#./bin/elasticsearch-usersuseraddryan-rsuperuser Enternewpassword: Retypenewpassword:

    使用此用户更改elastic的密码:

    curl-XPUT-uryan:ryan123http://localhost:9200/_xpack/security/user/elastic/_password-H"Content-Type:application/json"-d' { "password":"q5f2qNfUJQyvZPIz57MZ" }'

    引用

    http://codingfundas.com/setting-up-elasticsearch-6-8-with-kiBana-and-x-pack-security-enabled/index.html

    关于docker安装Elasticsearch7.6集群和设置密码的这篇文章到此为止。关于docker安装Elasticsearchcluster的更多信息,请搜索我们之前的文章或继续浏览下面的相关文章。希望你以后能支持我们!

    欢迎分享,转载请注明来源:内存溢出

    原文地址: https://outofmemory.cn/zz/774479.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2022-05-03
    下一篇 2022-05-03

    发表评论

    登录后才能评论

    评论列表(0条)

    保存