使用'docker-compose'命令运行Elasticsearch,Logstash和Kibana

时间:2017-04-08 06:37:18

标签: elasticsearch docker logstash docker-compose kibana

我将使用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.logscluster.namenode.namedocker-compose.yml等Elasticsearch参数?

1 个答案:

答案 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"
...