Wanting to build my Elastic stack from docker-compose.
Here my file.
version: '3.7'
services:
elasticsearch1:
image: docker.elastic.co/elasticsearch/elasticsearch:6.3.2
container_name: Elasticsearch1
environment:
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata1:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- esnet
elasticsearch2:
image: docker.elastic.co/elasticsearch/elasticsearch:6.3.2
container_name: Elasticsearch2
environment:
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- "discovery.zen.ping.unicast.hosts=elasticsearch1"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata2:/usr/share/elasticsearch/data
networks:
- esnet
kibana:
image: docker.elastic.co/kibana/kibana:6.3.2
container_name: Kibana
ports:
- 5601:5601
environment:
ELASTICSEARCH_URL: http://elasticsearch1:9200
networks:
- esnet
depends_on:
- elasticsearch1
logstash:
image: docker.elastic.co/logstash/logstash:6.3.2
container_name: Logstash
environment:
LS_JAVA_OPTS: "-Xmx256m -Xms256m"
ports:
- "5959:5959"
volumes:
- ./logstash/:/etc/logstash/conf.d
depends_on:
- elasticsearch1
networks:
- esnet
volumes:
esdata1:
driver: local
esdata2:
driver: local
networks:
esnet:
Everything is working except for Logstash that cannot get to Elasticsearch.
Here my logstash.conf:
input { stdin { } }
filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}" }
}
date {
match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
}
}
output {
elasticsearch { hosts => ["elasticsearch1", "elasticsearch2"] }
stdout { codec => rubydebug }
}