102 lines
2.9 KiB
YAML
102 lines
2.9 KiB
YAML
version: '3.7'
|
|
|
|
services:
|
|
|
|
# The 'setup' service runs a one-off script which initializes users inside
|
|
# Elasticsearch — such as 'logstash_internal' and 'kibana_system' — with the
|
|
# values of the passwords defined in the '.env' file.
|
|
#
|
|
# This task is only performed during the *initial* startup of the stack. On all
|
|
# subsequent runs, the service simply returns immediately, without performing
|
|
# any modification to existing users.
|
|
setup:
|
|
build:
|
|
context: setup/
|
|
args:
|
|
ELASTIC_VERSION: ${ELASTIC_VERSION}
|
|
init: true
|
|
volumes:
|
|
- ./setup/entrypoint.sh:/entrypoint.sh:ro,Z
|
|
- ./setup/helpers.sh:/helpers.sh:ro,Z
|
|
- ./setup/roles:/roles:ro,Z
|
|
- setup:/state:Z
|
|
environment:
|
|
ELASTIC_PASSWORD: ${ELASTIC_PASSWORD:-}
|
|
LOGSTASH_INTERNAL_PASSWORD: ${LOGSTASH_INTERNAL_PASSWORD:-}
|
|
KIBANA_SYSTEM_PASSWORD: ${KIBANA_SYSTEM_PASSWORD:-}
|
|
BEATS_SYSTEM_PASSWORD: ${BEATS_SYSTEM_PASSWORD:-}
|
|
MONITORING_INTERNAL_PASSWORD: ${MONITORING_INTERNAL_PASSWORD:-}
|
|
networks:
|
|
- elk
|
|
depends_on:
|
|
- elasticsearch
|
|
|
|
elasticsearch:
|
|
build:
|
|
context: elasticsearch/
|
|
args:
|
|
ELASTIC_VERSION: ${ELASTIC_VERSION}
|
|
volumes:
|
|
- ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro,Z
|
|
- elasticsearch:/usr/share/elasticsearch/data:Z
|
|
ports:
|
|
- 9200:9200
|
|
- 9300:9300
|
|
environment:
|
|
node.name: elasticsearch
|
|
ES_JAVA_OPTS: -Xms512m -Xmx512m
|
|
# Bootstrap password.
|
|
# Used to initialize the keystore during the initial startup of
|
|
# Elasticsearch. Ignored on subsequent runs.
|
|
ELASTIC_PASSWORD: ${ELASTIC_PASSWORD:-}
|
|
# Use single node discovery in order to disable production mode and avoid bootstrap checks.
|
|
# see: https://www.elastic.co/guide/en/elasticsearch/reference/current/bootstrap-checks.html
|
|
discovery.type: single-node
|
|
networks:
|
|
- elk
|
|
|
|
logstash:
|
|
build:
|
|
context: logstash/
|
|
args:
|
|
ELASTIC_VERSION: ${ELASTIC_VERSION}
|
|
volumes:
|
|
- ./logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml:ro,Z
|
|
- ./logstash/pipeline:/usr/share/logstash/pipeline:ro,Z
|
|
ports:
|
|
- 5044:5044
|
|
- 50000:50000/tcp
|
|
- 50000:50000/udp
|
|
- 9600:9600
|
|
environment:
|
|
LS_JAVA_OPTS: -Xms256m -Xmx256m
|
|
LOGSTASH_INTERNAL_PASSWORD: ${LOGSTASH_INTERNAL_PASSWORD:-}
|
|
networks:
|
|
- elk
|
|
depends_on:
|
|
- elasticsearch
|
|
|
|
kibana:
|
|
build:
|
|
context: kibana/
|
|
args:
|
|
ELASTIC_VERSION: ${ELASTIC_VERSION}
|
|
volumes:
|
|
- ./kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml:ro,Z
|
|
ports:
|
|
- 5601:5601
|
|
environment:
|
|
KIBANA_SYSTEM_PASSWORD: ${KIBANA_SYSTEM_PASSWORD:-}
|
|
networks:
|
|
- elk
|
|
depends_on:
|
|
- elasticsearch
|
|
|
|
networks:
|
|
elk:
|
|
driver: bridge
|
|
|
|
volumes:
|
|
setup:
|
|
elasticsearch:
|