| version: '3.7' |
| |
| services: |
| |
| # Site |
| site: |
| build: ./site |
| ports: |
| - 8080:8080 |
| depends_on: |
| - "logstash" |
| command: python -m http.server 8080 |
| |
| # 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. It also creates the |
| # roles required by some of these users. |
| # |
| # This task only needs to be performed once, during the *initial* startup of |
| # the stack. Any subsequent run will reset the passwords of existing users to |
| # the values defined inside the '.env' file, and the built-in roles to their |
| # default permissions. |
| # |
| # By default, it is excluded from the services started by 'docker compose up' |
| # due to the non-default profile it belongs to. To run it, either provide the |
| # '--profile=setup' CLI flag to Compose commands, or "up" the service by name |
| # such as 'docker compose up setup'. |
| setup: |
| profiles: |
| - setup |
| build: |
| context: setup/ |
| args: |
| ELASTIC_VERSION: ${ELASTIC_VERSION} |
| init: true |
| volumes: |
| - ./setup/entrypoint.sh:/entrypoint.sh:ro,Z |
| - ./setup/lib.sh:/lib.sh:ro,Z |
| - ./setup/roles:/roles:ro,Z |
| environment: |
| ELASTIC_PASSWORD: ${ELASTIC_PASSWORD:-} |
| LOGSTASH_INTERNAL_PASSWORD: ${LOGSTASH_INTERNAL_PASSWORD:-} |
| KIBANA_SYSTEM_PASSWORD: ${KIBANA_SYSTEM_PASSWORD:-} |
| METRICBEAT_INTERNAL_PASSWORD: ${METRICBEAT_INTERNAL_PASSWORD:-} |
| FILEBEAT_INTERNAL_PASSWORD: ${FILEBEAT_INTERNAL_PASSWORD:-} |
| HEARTBEAT_INTERNAL_PASSWORD: ${HEARTBEAT_INTERNAL_PASSWORD:-} |
| MONITORING_INTERNAL_PASSWORD: ${MONITORING_INTERNAL_PASSWORD:-} |
| BEATS_SYSTEM_PASSWORD: ${BEATS_SYSTEM_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 |
| restart: unless-stopped |
| |
| 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 |
| - ./logstash/templates:/usr/share/logstash/templates: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 |
| restart: unless-stopped |
| |
| 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 |
| restart: unless-stopped |
| |
| networks: |
| elk: |
| driver: bridge |
| |
| volumes: |
| elasticsearch: |