--- version: '3' services: zookeeper: restart: unless-stopped container_name: obmp-zookeeper image: confluentinc/cp-zookeeper:6.0.2 volumes: - ${OBMP_DATA_ROOT}/zk-data:/var/lib/zookeeper/data - ${OBMP_DATA_ROOT}/zk-log:/var/lib/zookeeper/log environment: ZOOKEEPER_CLIENT_PORT: 2181 ZOOKEEPER_TICK_TIME: 2000 kafka: restart: unless-stopped container_name: obmp-kafka image: confluentinc/cp-kafka:6.0.2 # Change the mount point to where you want to store Kafka data. # Normally 80GB or more volumes: - ${OBMP_DATA_ROOT}/kafka-data:/var/lib/kafka/data depends_on: - zookeeper ports: - 9092:9092 environment: KAFKA_BROKER_ID: 1 KAFKA_ZOOKEEPER_CONNECT: obmp-zookeeper:2181 # Change/add listeners based on your FQDN that the host and other containers can access. You can use # an IP address as well. By default, only within the compose/containers can Kafka be accesssed # using port 29092. Outside access can be enabled, but you should use an FQDN listener. #KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://:9092 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://obmp-kafka:29092 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 KAFKA_NUM_PARTITIONS: 8 KAFKA_LOG_RETENTION_MINUTES: 90 KAFKA_LOG_ROLL_MS: 3600000 KAFKA_LOG_SEGMENT_BYTES: 1073741824 KAFKA_MESSAGE_MAX_BYTES: 100000000 KAFKA_LOG_CLEANER_THREADS: 2 grafana: restart: unless-stopped container_name: obmp-grafana image: grafana/grafana:latest ports: - 3000:3000 volumes: - ${OBMP_DATA_ROOT}/grafana:/var/lib/grafana - ${OBMP_DATA_ROOT}/grafana/provisioning:/etc/grafana/provisioning/ environment: - GF_SECURITY_ADMIN_PASSWORD=openbmp - GF_AUTH_ANONYMOUS_ENABLED=true - GF_SERVER_ROOT_URL=/ # Change this if you have grafana behind URL/paths, such as /grafana/ - GF_INSTALL_PLUGINS=agenty-flowcharting-panel,briangann-datatable-panel,digrich-bubblechart-panel,grafana-piechart-panel,grafana-worldmap-panel,vonage-status-panel psql: restart: unless-stopped container_name: obmp-psql image: openbmp/postgres:build-50 ports: - 5432:5432 volumes: - ${OBMP_DATA_ROOT}/postgres/data:/var/lib/postgresql/data # change this to 80GB SSD slice/partition - ${OBMP_DATA_ROOT}/postgres/ts:/var/lib/postgresql/ts # Chnage this to 500GB SSD slice/partition environment: - MEM=10 # Set MEM to at least 2GB but ideally >16GB - POSTGRES_PASSWORD=openbmp - POSTGRES_USER=openbmp - POSTGRES_DB=openbmp collector: restart: unless-stopped container_name: obmp-collector image: openbmp/collector:build-50 sysctls: - net.ipv4.tcp_keepalive_intvl=30 - net.ipv4.tcp_keepalive_probes=5 - net.ipv4.tcp_keepalive_time=180 ports: - 5000:5000 volumes: - ${OBMP_DATA_ROOT}/config:/config environment: - KAFKA_FQDN=obmp-kafka:29092 psql-app: restart: unless-stopped container_name: obmp-psql-app image: openbmp/psql-app:build-50 sysctls: - net.ipv4.tcp_keepalive_intvl=30 - net.ipv4.tcp_keepalive_probes=5 - net.ipv4.tcp_keepalive_time=180 ports: - 9005:9005 - 8080:8080 volumes: - ${OBMP_DATA_ROOT}/config:/config environment: - MEM=4 # Set memory to at least 2GB but ideally 4GB - KAFKA_FQDN=obmp-kafka:29092 - ENABLE_RPKI=1 # 1 enables, 0 disables RPKI sync - ENABLE_IRR=1 # 1 enables, 0 disables IRR sync - POSTGRES_PASSWORD=openbmp - POSTGRES_USER=openbmp - POSTGRES_DB=openbmp - POSTGRES_HOST=obmp-psql - POSTGRES_PORT=5432