我将使用docker-compose
命令运行带有以下docker-compose.yml
文件的ELK:
---
version: '2'
services:
kibana:
image: docker.elastic.co/kibana/kibana
links:
- elasticsearch
ports:
- 5601:5601
kibana:
image: docker.elastic.co/logstash/logstash
links:
- elasticsearch
ports:
- 5044:5044
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch
cap_add:
- IPC_LOCK
volumes:
- esdata1:/usr/share/elasticsearch/data
ports:
- 9200:9200
volumes:
esdata1:
driver: local
但我几乎没有问题:
1)我指定了links
参数来链接容器,但是我还应该指定networks
参数吗?它用于什么?
2)如何更改Elasticsearch,Logstash和Kibana的默认用户名和密码?
3)Elasticsearch配置参数存储在elasticsearch.yml
文件中,但在哪里可以找到该文件?
是否可以直接在path.data
文件中定义E path.logs
,cluster.name
,node.name
,docker-compose.yml
等Elasticsearch参数?
答案 0 :(得分:1)
<强> 1)强> links 参数允许通过其服务名称或别名访问链接容器。对于两个服务已加入的任何docker网络,这都是可能的。
如果您未在服务的网络键下指定任何网络,则服务将加入docker默认网络(我认为是网桥)。
如果您希望服务加入(特定数量)特定的泊坞网络,则只需指定网络名称。然后你可以再次在顶级网络键下定义(让docker-compose创建网络)或者在每个docker network create
之外的docker compose之外做准备
2)您使用的图像是使用X-Pack构建的,如何更改密码在此处描述X-Pack security从文档中获取的示例:
curl -XPUT -u elastic 'localhost:9200/_xpack/security/user/elastic/_password' -H "Content-Type: application/json" -d '{
"password" : "elasticpassword"
}'
curl -XPUT -u elastic 'localhost:9200/_xpack/security/user/kibana/_password' -H "Content-Type: application/json" -d '{
"password" : "kibanapassword"
}'
curl -XPUT -u elastic 'localhost:9200/_xpack/security/user/logstash_system/_password' -H "Content-Type: application/json" -d '{
"password" : "logstashpassword"
}'
如果您不想将其作为手动后置设置步骤,则必须创建自己的派生泊坞窗图像。
3)您可以使用 elasticsearch.yml 配置的配置参数可以使用Elastic search docker documentation所述的环境变量进行设置。从文档中获取的示例:
...
services:
elasticsearch1:
image: docker.elastic.co/elasticsearch/elasticsearch:5.3.0
container_name: elasticsearch1
environment:
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
...