version: '2' services: # MongoDB: https://hub.docker.com/_/mongo/ mongodb: image: 'mongo:3' volumes: - 'mongo_data:/data/db' # Elasticsearch: https://www.elastic.co/guide/en/elasticsearch/reference/6.x/docker.html elasticsearch: image: 'docker.elastic.co/elasticsearch/elasticsearch-oss:6.8.4' mem_limit: 4g restart: always volumes: - 'es_data:/usr/share/elasticsearch/data' env_file: - ./elasticsearch.env ulimits: memlock: soft: -1 hard: -1 ports: - '9200:9200' # Graylog: https://hub.docker.com/r/graylog/graylog/ graylog: build: context: ./graylog/. args: - GRAYLOG_PLUGIN_DIR volumes: - 'graylog_journal:/usr/share/graylog/data/journal' - './service-names-port-numbers.csv:/etc/graylog/server/service-names-port-numbers.csv' env_file: - ./graylog.env links: - 'mongodb:mongo' - elasticsearch depends_on: - mongodb - elasticsearch ports: # Netflow - '2055:2055/udp' # Syslog Feed - '5442:5442/udp' # Graylog web interface and REST API - '9000:9000' # Syslog TCP - '1514:1514' # Syslog UDP - '1514:1514/udp' # GELF TCP - '12201:12201' # GELF UDP - '12201:12201/udp' # Kibana : https://www.elastic.co/guide/en/kibana/6.8/index.html kibana: image: 'docker.elastic.co/kibana/kibana-oss:6.8.4' env_file: - kibana.env depends_on: - elasticsearch ports: - '5601:5601' cerebro: image: lmenezes/cerebro ports: - '9001:9000' links: - elasticsearch depends_on: - elasticsearch logging: driver: "json-file" options: max-size: "100M" influxdb: image: 'influxdb:latest' env_file: - ./influxdb.env ports: - '8086:8086' volumes: - 'influxdb:/var/lib/influxdb' logging: driver: "json-file" options: max-size: "100M" grafana: image: 'grafana/grafana:latest' env_file: - ./grafana.env ports: - '3000:3000' volumes: - 'grafana:/var/lib/grafana' - './provisioning/:/etc/grafana/provisioning' links: - elasticsearch - influxdb depends_on: - elasticsearch - influxdb logging: driver: "json-file" options: max-size: "100M" # Volumes for persisting data, see https://docs.docker.com/engine/admin/volumes/volumes/ volumes: mongo_data: driver: local es_data: driver: local graylog_journal: driver: local grafana: driver: local influxdb: driver: local