MozDef/docker/compose/docker-compose.yml

372 строки
9.5 KiB
YAML

---
version: '3.7'
services:
elasticsearch:
image: mozdef/mozdef_elasticsearch
build:
context: ../../
dockerfile: docker/compose/elasticsearch/Dockerfile
cache_from:
- mozdef/mozdef_elasticsearch
- mozdef_elasticsearch:latest
healthcheck:
test: ["CMD", "curl", "-f", "127.0.0.1:9200"]
interval: 30s
timeout: 3s
retries: 10
command: bin/elasticsearch
restart: always
volumes:
- elasticsearch:/var/lib/elasticsearch
# ports:
# - 9200:9200
networks:
- default
rabbitmq:
image: mozdef/mozdef_rabbitmq
build:
context: ../../
dockerfile: docker/compose/rabbitmq/Dockerfile
cache_from:
- mozdef/mozdef_rabbitmq
- mozdef_rabbitmq:latest
healthcheck:
test: ["CMD", "curl", "-f", "127.0.0.1:15672"]
interval: 30s
timeout: 3s
retries: 10
restart: always
command: rabbitmq-server
volumes:
- rabbitmq:/var/lib/rabbitmq
# ports:
# - 5672:5672
# - 15672:15672 # Admin interface
networks:
- default
mongodb:
image: mozdef/mozdef_mongodb
build:
context: ../../
dockerfile: docker/compose/mongodb/Dockerfile
cache_from:
- mozdef/mozdef_mongodb
- mozdef_mongodb:latest
healthcheck:
test: ["CMD", "curl", "-f", "127.0.0.1:3002"]
interval: 30s
timeout: 3s
retries: 10
restart: always
command: /usr/bin/mongod --smallfiles --config /etc/mongod.conf
volumes:
- mongodb:/var/lib/mongo
# ports:
# - 3002:3002
networks:
- default
kibana:
image: mozdef/mozdef_kibana
build:
context: ../../
dockerfile: docker/compose/kibana/Dockerfile
cache_from:
- mozdef/mozdef_kibana
- mozdef_kibana:latest
healthcheck:
test: ["CMD", "curl", "-f", "127.0.0.1:5601"]
interval: 30s
timeout: 3s
retries: 10
restart: always
command: bin/kibana --elasticsearch=http://elasticsearch:9200
depends_on:
- elasticsearch
networks:
- default
nginx:
image: mozdef/mozdef_nginx
build:
context: ../../
dockerfile: docker/compose/nginx/Dockerfile
cache_from:
- mozdef/mozdef_nginx
- mozdef_nginx:latest
healthcheck:
test: ["CMD", "curl", "-f", "127.0.0.1"]
interval: 30s
timeout: 3s
retries: 10
restart: always
command: /usr/sbin/nginx
depends_on:
- kibana
- meteor
ports:
- 80:80
- 8080:8080
- 9090:9090
# - 8081:8081
networks:
- default
# MozDef Specific Containers
base:
image: mozdef/mozdef_base
build:
context: ../../
dockerfile: docker/compose/mozdef_base/Dockerfile
cache_from:
- mozdef/mozdef_base
- mozdef_base:latest
bootstrap:
image: mozdef/mozdef_bootstrap
build:
context: ../../
dockerfile: docker/compose/mozdef_bootstrap/Dockerfile
cache_from:
- mozdef/mozdef_bootstrap
- mozdef_bootstrap:latest
command: bash -c 'while ! timeout 1 bash -c "echo > /dev/tcp/elasticsearch/9200";do sleep 1;done && python initial_setup.py http://elasticsearch:9200 http://kibana:5601'
depends_on:
- base
- elasticsearch
environment:
- ES_URL=http://localhost:9200
networks:
- default
alertactions:
image: mozdef/mozdef_alertactions
build:
context: ../../
dockerfile: docker/compose/mozdef_alertactions/Dockerfile
cache_from:
- mozdef/mozdef_alertactions
- mozdef_alertactions:latest
healthcheck:
test: "[[ $$(pgrep python | wc -l) -ge 1 ]]"
interval: 30s
timeout: 3s
retries: 10
restart: always
command: bash -c 'while ! timeout 1 bash -c "echo > /dev/tcp/elasticsearch/9200";do sleep 1;done && python alert_actions_worker.py -c alert_actions_worker.conf'
depends_on:
- base
- elasticsearch
- rabbitmq
- alerts
- bootstrap
networks:
- default
alerts:
image: mozdef/mozdef_alerts
build:
context: ../../
dockerfile: docker/compose/mozdef_alerts/Dockerfile
cache_from:
- mozdef/mozdef_alerts
- mozdef_alerts:latest
healthcheck:
test: "celery inspect ping -A lib.tasks"
interval: 30s
timeout: 6s
retries: 10
restart: always
command: bash -c 'while ! timeout 1 bash -c "echo > /dev/tcp/elasticsearch/9200";do sleep 1;done && celery -A lib.tasks worker --loglevel=info --beat'
depends_on:
- base
- elasticsearch
- rabbitmq
- bootstrap
networks:
- default
# bot:
# image: mozdef/mozdef_bot
# build:
# context: ../../
# dockerfile: docker/compose/mozdef_bot/Dockerfile
# cache_from:
# - mozdef/mozdef_bot
# - mozdef_bot:latest
# args:
# # This is either 'irc', or 'slack'
# BOT_TYPE: slack
# restart: always
# command: bash -c 'while ! timeout 1 bash -c "echo > /dev/tcp/rabbitmq/5672";do sleep 1;done && python mozdefbot.py -c mozdefbot.conf'
# depends_on:
# - base
# - rabbitmq
# - alerts
# - bootstrap
# networks:
# - default
# volumes:
# - geolite_db:/opt/mozdef/envs/mozdef/data/
cron:
image: mozdef/mozdef_cron
build:
context: ../../
dockerfile: docker/compose/mozdef_cron/Dockerfile
cache_from:
- mozdef/mozdef_cron
- mozdef_cron:latest
healthcheck:
test: "[[ $$(pgrep crond | wc -l) -eq 1 ]]"
interval: 30s
timeout: 3s
retries: 10
restart: always
command: bash -c 'while ! timeout 1 bash -c "echo > /dev/tcp/elasticsearch/9200";do sleep 1;done && crond -n'
volumes:
- geolite_db:/opt/mozdef/envs/mozdef/data/
depends_on:
- base
- rabbitmq
- elasticsearch
- mongodb
- bootstrap
networks:
- default
loginput:
image: mozdef/mozdef_loginput
build:
context: ../../
dockerfile: docker/compose/mozdef_loginput/Dockerfile
cache_from:
- mozdef/mozdef_loginput
- mozdef_loginput:latest
healthcheck:
test: ["CMD", "curl", "-f", "127.0.0.1:8080/status"]
interval: 30s
timeout: 3s
retries: 10
restart: always
command: bash -c 'while ! timeout 1 bash -c "echo > /dev/tcp/elasticsearch/9200";do sleep 1;done && python index.py -c index.conf'
depends_on:
- base
- elasticsearch
- rabbitmq
- bootstrap
networks:
- default
mq_worker:
image: mozdef/mozdef_mq_worker
build:
context: ../../
dockerfile: docker/compose/mozdef_mq_worker/Dockerfile
cache_from:
- mozdef/mozdef_mq_worker
- mozdef_mq_worker:latest
healthcheck:
test: "[[ $$(pgrep python | wc -l) -ge 1 ]]"
interval: 30s
timeout: 3s
retries: 10
restart: always
command: bash -c 'while ! timeout 1 bash -c "echo > /dev/tcp/elasticsearch/9200";do sleep 1;done && python esworker_eventtask.py -c esworker_eventtask.conf'
depends_on:
- base
- rabbitmq
- elasticsearch
- loginput
- bootstrap
networks:
- default
volumes:
- geolite_db:/opt/mozdef/envs/mozdef/data/
meteor:
image: mozdef/mozdef_meteor
build:
context: ../../
dockerfile: docker/compose/mozdef_meteor/Dockerfile
cache_from:
- mozdef/mozdef_meteor
- mozdef_meteor:latest
healthcheck:
test: ["CMD", "curl", "-f", "127.0.0.1:3000"]
interval: 30s
timeout: 3s
retries: 10
restart: always
command: bash -c 'node bundle/main.js'
depends_on:
- mongodb
- rest
networks:
- default
rest:
image: mozdef/mozdef_rest
build:
context: ../../
dockerfile: docker/compose/mozdef_rest/Dockerfile
cache_from:
- mozdef/mozdef_rest
- mozdef_rest:latest
healthcheck:
test: ["CMD", "curl", "-f", "127.0.0.1:8081/status"]
interval: 30s
timeout: 3s
retries: 10
restart: always
command: bash -c 'while ! timeout 1 bash -c "echo > /dev/tcp/elasticsearch/9200";do sleep 1;done && python index.py -c index.conf'
depends_on:
- base
- elasticsearch
- mongodb
- bootstrap
networks:
- default
syslog:
image: mozdef/mozdef_syslog
build:
context: ../../
dockerfile: docker/compose/mozdef_syslog/Dockerfile
cache_from:
- mozdef/mozdef_syslog
- mozdef_syslog:latest
healthcheck:
test: ["CMD-SHELL", "echo > /dev/tcp/localhost/514"]
interval: 30s
timeout: 3s
retries: 10
restart: always
command: bash -c 'while ! timeout 1 bash -c "echo > /dev/tcp/rabbitmq/5672";do sleep 1;done && sleep 30 && /usr/sbin/syslog-ng --no-caps -F'
depends_on:
- loginput
ports:
- 514:514/udp
- 514:514
networks:
- default
tester:
image: mozdef/mozdef_tester
build:
context: ../../
dockerfile: docker/compose/tester/Dockerfile
cache_from:
- mozdef/mozdef_tester
- mozdef_tester:latest
networks:
- default
cognito_proxy:
image: mozdef/mozdef_cognito_proxy
build:
context: ../../
dockerfile: docker/compose/mozdef_cognito_proxy/Dockerfile
healthcheck:
test: ["CMD", "curl", "-f", "127.0.0.1"]
interval: 30s
timeout: 3s
retries: 10
command: bash -c 'exit 0'
networks:
- default
volumes:
elasticsearch:
rabbitmq:
mongodb:
geolite_db:
networks:
default: