美文网首页
docker安装Elasticsearch集群

docker安装Elasticsearch集群

作者: 彩色的炮灰 | 来源:发表于2023-12-18 16:19 被阅读0次

单点或者集群,都采用docker方式安装 并且注意,在安装前有4个步骤需要先执行

1、生成配置文件/etc/sysctl.d/elasticsearch.conf

单点或集群都要

cat >>/etc/sysctl.d/elasticsearch.conf <<EOF
vm.max_map_count=262144
EOF
#
sysctl --system

2、生成配置文件/data/elasticsearch6/conf/elasticsearch.yml

注意单点模式和集群模式配置不同

##  单点  ##
cat > elasticsearch.yml <<EOF
cluster.name: "ops-es7-cluster" 
network.host: 0.0.0.0
xpack.security.enabled: true
EOF
#
mv elasticsearch.yml /data/elasticsearch6/conf/elasticsearch.yml
##  集群  ##
mkdir /data/elasticsearch7/conf/ -p

#配置文件,启用xpack
cat > /data/elasticsearch7/conf/elasticsearch.yml <<EOF
cluster.name: "es7-cluster"
node.name: es-node-01
network.host: 0.0.0.0
#注意每个节点不同
network.publish_host: 192.168.10.10
#集群初始化时需要有一个master,实践发现,ES-7不指定master会报错,集群发现不了master无法初始化
cluster.initial_master_nodes: ["es-node-01"]
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate

#证书可选p12格式或pem(crt)格式,p12为二进制,包含了私钥;pem为文本,私钥与证书分开。
#证书路径可用相对路径(相对config路径)
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-stack-ca.p12
#xpack.security.transport.ssl.key: certs/instance/instance.key 
#xpack.security.transport.ssl.certificate: certs/instance/instance.crt 
#xpack.security.transport.ssl.certificate_authorities: [ "certs/ca/ca.crt" ]
#这一条配置与起docker时discovery.zen.ping.unicast.hosts参数功效一样,并且需要注意两种配置不能同时使用
discovery.seed_hosts: ["192.168.10.10","192.168.10.11","192.168.10.12"]
transport.tcp.port: 9300

3、修改目录权限

单点或集群都要

chown 1000 /data/elasticsearch7/ -R

4、部署ES集群特别步骤 - - 生成证书

生成证书需要用到ES自带的工具,可以在ES容器内找到
路径和生成CA的命令如下,注意:生成的证书在当前目录下

/usr/share/elasticsearch/bin/elasticsearch-certutil ca

接着使用CA生成节点证书

/usr/share/elasticsearch/bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

将证书文件从容器中拷贝到宿主机 certs目录。


image.png

5、启ES容器

接下来就可以执行docker run来创建容器了,同样分单点和集群两种
单点:

docker run --restart unless-stopped -d \
--ulimit memlock=-1:-1 \
-e "bootstrap.memory_lock=true" \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms1g -Xmx1g" \
-p 9200:9200 -p 9300:9300 \
-v /data/elasticsearch7/data:/usr/share/elasticsearch/data \
-v /data/elasticsearch7/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /data/elasticsearch7/plugins:/usr/share/elasticsearch/plugins \
--name elasticsearch7 elasticsearch:7.9.2

集群:

IP1=192.168.10.10;IP2=192.168.10.11;IP3=192.168.10.12
docker run --restart unless-stopped -d \
--ulimit memlock=-1:-1 \
-e "bootstrap.memory_lock=true" \
-e "ES_JAVA_OPTS=-Xms1g -Xmx1g" \
-e discovery.zen.ping.unicast.hosts=${IP1},${IP2},${IP3} \#注意此参数与配置文件elasticsearch.yml中discovery.seed_hosts参数,只能二选一
-e discovery.zen.minimum_master_nodes=2 \
-p 9200:9200 -p 9300:9300 \
-v /data/elasticsearch6/data:/usr/share/elasticsearch/data \
-v /data/elasticsearch6/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /data/elasticsearch6/certs:/usr/share/elasticsearch/config/certs \
-v /data/elasticsearch6/plugins:/usr/share/elasticsearch/plugins \
--name elasticsearch6 elasticsearch:7.9.2

6、添加密码

因为添加了xpack插件,我们需要为之添加密码
执行如下命令,会以交互的形式创建elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user多个用户,并依次设置密码 注意:这一步中的操作只能用于创建密码,不能用于修改已经存在的密码

docker exec -it elasticsearch6 sh
elasticsearch-setup-passwords interactive -u http://localhost:9200

相关文章

网友评论

      本文标题:docker安装Elasticsearch集群

      本文链接:https://www.haomeiwen.com/subject/cihagdtx.html