编写docker-compose.yml
version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.15.0
volumes:
- ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
environment:
- "discovery.type=single-node"
ports:
- 9200:9200
networks:
- elk
logstash:
image: docker.elastic.co/logstash/logstash:7.15.0
volumes:
- ./logstash/config:/usr/share/logstash/pipeline
- ./logstash/config/logstash-sample.conf:/usr/share/logstash/config/logstash-sample.conf
ports:
- 5000:5000
networks:
- elk
depends_on:
- elasticsearch
kibana:
image: docker.elastic.co/kibana/kibana:7.15.0
volumes:
- ./kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml
ports:
- 5601:5601
networks:
- elk
depends_on:
- elasticsearch
networks:
elk:
driver: bridge
创建目录及文件
├── docker-compose.yml
├── elasticsearch
│ └── config
│ └── elasticsearch.yml
├── kibana
│ ├── config
│ │ └── kibana.yml
│ └── kibana
└── logstash
└── config
└── logstash-sample.conf
编写elasticsearch.yml
cluster:
name: "cluster-elastic"
discovery:
type: single-node
network:
host: 0.0.0.0
node:
name: standalone-node-1
xpack:
security:
enabled: true
编写kibana.yml
server.host: "0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
elasticsearch.username: "elastic"
elasticsearch.password: "123456"
编写logstash-sample.conf
input {
tcp {
port => 5000
codec => json
}
}
output {
elasticsearch {
hosts => "elasticsearch:9200"
user => "elastic"
password => "123456"
}
}
启动
docker-compose up -d
docker ps -a
docker logs ***
设置密码
docker exec -it *** /bin/bash
cd /usr/share/elasticsearch/bin/
./elasticsearch-setup-passwords interactive