docker中的elasticsearch怎么创建带密码的集群
时间: 2024-03-21 22:39:47 浏览: 91
docker安装Elasticsearch7.6集群并设置密码
要在Docker中创建带密码保护的Elasticsearch集群,您需要完成以下步骤:
1. 创建一个网络
首先,您需要创建一个Docker网络,以便在同一网络中运行多个容器。您可以使用以下命令创建一个名为`elk`的新网络:
```
docker network create elk
```
2. 启动Elasticsearch容器
接下来,您需要启动Elasticsearch容器,并将其加入到上一步创建的网络中。您可以使用以下命令启动一个新的Elasticsearch容器:
```
docker run -d --name es01 --net elk -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "ELASTIC_PASSWORD=mysecretpassword" docker.elastic.co/elasticsearch/elasticsearch:7.13.4
```
在这个例子中,我们启动了一个名为`es01`的新Elasticsearch容器,并将其加入到`elk`网络中。我们设置了`discovery.type`环境变量为`single-node`,这样就可以创建一个不需要发现节点的单节点集群。我们还设置了`ELASTIC_PASSWORD`环境变量,并将其值设置为`mysecretpassword`,以创建具有密码保护的默认超级用户账号`elastic`。
3. 启动Kibana容器
如果您想启动Kibana容器来访问Elasticsearch集群,请使用以下命令启动一个新的Kibana容器:
```
docker run -d --name kib01 --net elk -p 5601:5601 -e "ELASTICSEARCH_HOSTS=http://es01:9200" -e "ELASTICSEARCH_USERNAME=elastic" -e "ELASTICSEARCH_PASSWORD=mysecretpassword" docker.elastic.co/kibana/kibana:7.13.4
```
在这个例子中,我们启动了一个名为`kib01`的新Kibana容器,并将其加入到`elk`网络中。我们设置了`ELASTICSEARCH_HOSTS`环境变量为`http://es01:9200`,这样Kibana就可以连接到Elasticsearch集群。我们还设置了`ELASTICSEARCH_USERNAME`和`ELASTICSEARCH_PASSWORD`环境变量,以使用我们在第2步中设置的用户名和密码进行身份验证。
4. 启动Logstash容器(可选)
如果您想启动Logstash容器来处理日志数据,可以使用以下命令启动一个新的Logstash容器:
```
docker run -d --name log01 --net elk -v /path/to/log/files:/usr/share/logstash/pipeline/ -e "ELASTICSEARCH_HOSTS=http://es01:9200" -e "ELASTICSEARCH_USERNAME=elastic" -e "ELASTICSEARCH_PASSWORD=mysecretpassword" docker.elastic.co/logstash/logstash:7.13.4
```
在这个例子中,我们启动了一个名为`log01`的新Logstash容器,并将其加入到`elk`网络中。我们使用`-v`选项将本地日志文件目录挂载到容器中的`/usr/share/logstash/pipeline/`目录中,以便Logstash可以处理这些日志数据。我们设置了`ELASTICSEARCH_HOSTS`环境变量为`http://es01:9200`,这样Logstash就可以连接到Elasticsearch集群。我们还设置了`ELASTICSEARCH_USERNAME`和`ELASTICSEARCH_PASSWORD`环境变量,以使用我们在第2步中设置的用户名和密码进行身份验证。
以上就是在Docker中创建带密码保护的Elasticsearch集群的步骤。请注意,如果您想将该集群部署到生产环境中,您需要采取其他安全措施,如使用SSL/TLS进行加密通信、限制网络访问等。
阅读全文