Files
pfsense-analytics/Docker/docker-compose.yml

125 lines
2.5 KiB
YAML

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.5
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/.
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.5
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
- ./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