forked from wazuh/wazuh-docker
266 lines
10 KiB
YAML
266 lines
10 KiB
YAML
# Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2)
|
|
services:
|
|
wazuh.master:
|
|
image: wazuh/wazuh-manager:5.0.1
|
|
hostname: wazuh.master
|
|
container_name: multi-node-wazuh.master
|
|
restart: always
|
|
depends_on:
|
|
wazuh1.indexer:
|
|
condition: service_healthy
|
|
healthcheck:
|
|
test: [ "CMD-SHELL", "/var/wazuh-manager/bin/wazuh-manager-control status 2>/dev/null | grep -q 'not running' && exit 1 || exit 0" ]
|
|
interval: 15s
|
|
timeout: 5s
|
|
retries: 5
|
|
start_period: 60s
|
|
ulimits:
|
|
memlock:
|
|
soft: -1
|
|
hard: -1
|
|
nofile:
|
|
soft: 655360
|
|
hard: 655360
|
|
ports:
|
|
- "1515:1515"
|
|
- "514:514/udp"
|
|
- "55000:55000"
|
|
environment:
|
|
- WAZUH_INDEXER_HOSTS=wazuh1.indexer:9200,wazuh2.indexer:9200,wazuh3.indexer:9200
|
|
- WAZUH_NODE_NAME=master
|
|
- WAZUH_NODE_TYPE=master
|
|
- WAZUH_CLUSTER_BIND_ADDR=0.0.0.0
|
|
- WAZUH_CLUSTER_NODES=wazuh.master
|
|
- INDEXER_USERNAME=admin
|
|
- INDEXER_PASSWORD=admin
|
|
volumes:
|
|
- master-wazuh-api-configuration:/var/wazuh-manager/api/configuration
|
|
- master-wazuh-etc:/var/wazuh-manager/etc
|
|
- master-wazuh-logs:/var/wazuh-manager/logs
|
|
- master-wazuh-queue:/var/wazuh-manager/queue
|
|
- master-wazuh-var-multigroups:/var/wazuh-manager/var/multigroups
|
|
- ./config/root-ca/certs/root-ca.pem:/var/wazuh-manager/etc/certs/root-ca.pem
|
|
- ./config/wazuh_master/certs/wazuh.master.pem:/var/wazuh-manager/etc/certs/manager.pem
|
|
- ./config/wazuh_master/certs/wazuh.master-key.pem:/var/wazuh-manager/etc/certs/manager-key.pem
|
|
|
|
wazuh.worker:
|
|
image: wazuh/wazuh-manager:5.0.1
|
|
hostname: wazuh.worker
|
|
container_name: multi-node-wazuh.worker
|
|
restart: always
|
|
healthcheck:
|
|
test: [ "CMD-SHELL", "/var/wazuh-manager/bin/wazuh-manager-control status 2>/dev/null | grep -v apid | grep -q 'not running' && exit 1 || exit 0" ]
|
|
interval: 15s
|
|
timeout: 5s
|
|
retries: 5
|
|
start_period: 60s
|
|
ulimits:
|
|
memlock:
|
|
soft: -1
|
|
hard: -1
|
|
nofile:
|
|
soft: 655360
|
|
hard: 655360
|
|
depends_on:
|
|
wazuh.master:
|
|
condition: service_healthy
|
|
environment:
|
|
- WAZUH_INDEXER_HOSTS=wazuh1.indexer:9200,wazuh2.indexer:9200,wazuh3.indexer:9200
|
|
- WAZUH_NODE_NAME=worker01
|
|
- WAZUH_NODE_TYPE=worker
|
|
- WAZUH_CLUSTER_BIND_ADDR=0.0.0.0
|
|
- WAZUH_CLUSTER_NODES=wazuh.master
|
|
- INDEXER_USERNAME=admin
|
|
- INDEXER_PASSWORD=admin
|
|
volumes:
|
|
- worker-wazuh-api-configuration:/var/wazuh-manager/api/configuration
|
|
- worker-wazuh-etc:/var/wazuh-manager/etc
|
|
- worker-wazuh-logs:/var/wazuh-manager/logs
|
|
- worker-wazuh-queue:/var/wazuh-manager/queue
|
|
- worker-wazuh-var-multigroups:/var/wazuh-manager/var/multigroups
|
|
- ./config/root-ca/certs/root-ca.pem:/var/wazuh-manager/etc/certs/root-ca.pem
|
|
- ./config/wazuh_worker/certs/wazuh.worker.pem:/var/wazuh-manager/etc/certs/manager.pem
|
|
- ./config/wazuh_worker/certs/wazuh.worker-key.pem:/var/wazuh-manager/etc/certs/manager-key.pem
|
|
|
|
wazuh1.indexer:
|
|
image: wazuh/wazuh-indexer:5.0.1
|
|
hostname: wazuh1.indexer
|
|
container_name: multi-node-wazuh1.indexer
|
|
restart: always
|
|
ports:
|
|
- "9200:9200"
|
|
environment:
|
|
- OPENSEARCH_JAVA_OPTS=-Xms1g -Xmx1g
|
|
- bootstrap.memory_lock=true
|
|
- network.host=0.0.0.0
|
|
- node.name=wazuh1.indexer
|
|
- cluster.initial_cluster_manager_nodes=wazuh1.indexer,wazuh2.indexer,wazuh3.indexer
|
|
- discovery.seed_hosts=wazuh1.indexer,wazuh2.indexer,wazuh3.indexer
|
|
- node.max_local_storage_nodes=3
|
|
- plugins.security.allow_default_init_securityindex=true
|
|
- NODES_DN=CN=wazuh1.indexer,OU=Wazuh,O=Wazuh,L=California,C=US;CN=wazuh2.indexer,OU=Wazuh,O=Wazuh,L=California,C=US;CN=wazuh3.indexer,OU=Wazuh,O=Wazuh,L=California,C=US
|
|
ulimits:
|
|
memlock:
|
|
soft: -1
|
|
hard: -1
|
|
nofile:
|
|
soft: 65536
|
|
hard: 65536
|
|
healthcheck:
|
|
test: [ "CMD-SHELL", "curl -fks https://localhost:9200/_plugins/_security/health | grep -q '\"status\":\"UP\"'" ]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 5
|
|
start_period: 60s
|
|
volumes:
|
|
- wazuh-indexer-data-1:/var/lib/wazuh-indexer
|
|
- ./config/root-ca/certs/root-ca.pem:/usr/share/wazuh-indexer/config/certs/root-ca.pem
|
|
- ./config/wazuh1_indexer/certs/wazuh1.indexer-key.pem:/usr/share/wazuh-indexer/config/certs/indexer-key.pem
|
|
- ./config/wazuh1_indexer/certs/wazuh1.indexer.pem:/usr/share/wazuh-indexer/config/certs/indexer.pem
|
|
- ./config/wazuh1_indexer/certs/admin.pem:/usr/share/wazuh-indexer/config/certs/admin.pem
|
|
- ./config/wazuh1_indexer/certs/admin-key.pem:/usr/share/wazuh-indexer/config/certs/admin-key.pem
|
|
|
|
wazuh2.indexer:
|
|
image: wazuh/wazuh-indexer:5.0.1
|
|
hostname: wazuh2.indexer
|
|
container_name: multi-node-wazuh2.indexer
|
|
restart: always
|
|
entrypoint: >
|
|
/bin/sh -c " echo 'Waiting for wazuh1.indexer...'; sleep 5; until getent hosts wazuh1.indexer; do sleep 2; done; /entrypoint.sh opensearch"
|
|
depends_on:
|
|
- wazuh1.indexer
|
|
environment:
|
|
- OPENSEARCH_JAVA_OPTS=-Xms1g -Xmx1g
|
|
- bootstrap.memory_lock=true
|
|
- network.host=0.0.0.0
|
|
- node.name=wazuh2.indexer
|
|
- cluster.initial_cluster_manager_nodes=wazuh1.indexer,wazuh2.indexer,wazuh3.indexer
|
|
- discovery.seed_hosts=wazuh1.indexer,wazuh2.indexer,wazuh3.indexer
|
|
- node.max_local_storage_nodes=3
|
|
- plugins.security.allow_default_init_securityindex=true
|
|
- NODES_DN=CN=wazuh1.indexer,OU=Wazuh,O=Wazuh,L=California,C=US;CN=wazuh2.indexer,OU=Wazuh,O=Wazuh,L=California,C=US;CN=wazuh3.indexer,OU=Wazuh,O=Wazuh,L=California,C=US
|
|
ulimits:
|
|
memlock:
|
|
soft: -1
|
|
hard: -1
|
|
nofile:
|
|
soft: 65536
|
|
hard: 65536
|
|
healthcheck:
|
|
test: [ "CMD-SHELL", "curl -fks https://localhost:9200/_plugins/_security/health | grep -q '\"status\":\"UP\"'" ]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 5
|
|
start_period: 60s
|
|
volumes:
|
|
- wazuh-indexer-data-2:/var/lib/wazuh-indexer
|
|
- ./config/root-ca/certs/root-ca.pem:/usr/share/wazuh-indexer/config/certs/root-ca.pem
|
|
- ./config/wazuh2_indexer/certs/wazuh2.indexer-key.pem:/usr/share/wazuh-indexer/config/certs/indexer-key.pem
|
|
- ./config/wazuh2_indexer/certs/wazuh2.indexer.pem:/usr/share/wazuh-indexer/config/certs/indexer.pem
|
|
|
|
wazuh3.indexer:
|
|
image: wazuh/wazuh-indexer:5.0.1
|
|
hostname: wazuh3.indexer
|
|
container_name: multi-node-wazuh3.indexer
|
|
restart: always
|
|
entrypoint: >
|
|
/bin/sh -c " echo 'Waiting for wazuh1.indexer...'; sleep 5;until getent hosts wazuh1.indexer; do sleep 2; done; /entrypoint.sh opensearch"
|
|
depends_on:
|
|
- wazuh1.indexer
|
|
environment:
|
|
- OPENSEARCH_JAVA_OPTS=-Xms1g -Xmx1g
|
|
- bootstrap.memory_lock=true
|
|
- network.host=0.0.0.0
|
|
- node.name=wazuh3.indexer
|
|
- cluster.initial_cluster_manager_nodes=wazuh1.indexer,wazuh2.indexer,wazuh3.indexer
|
|
- discovery.seed_hosts=wazuh1.indexer,wazuh2.indexer,wazuh3.indexer
|
|
- node.max_local_storage_nodes=3
|
|
- plugins.security.allow_default_init_securityindex=true
|
|
- NODES_DN=CN=wazuh1.indexer,OU=Wazuh,O=Wazuh,L=California,C=US;CN=wazuh2.indexer,OU=Wazuh,O=Wazuh,L=California,C=US;CN=wazuh3.indexer,OU=Wazuh,O=Wazuh,L=California,C=US
|
|
ulimits:
|
|
memlock:
|
|
soft: -1
|
|
hard: -1
|
|
nofile:
|
|
soft: 65536
|
|
hard: 65536
|
|
healthcheck:
|
|
test: [ "CMD-SHELL", "curl -fks https://localhost:9200/_plugins/_security/health | grep -q '\"status\":\"UP\"'" ]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 5
|
|
start_period: 60s
|
|
volumes:
|
|
- wazuh-indexer-data-3:/var/lib/wazuh-indexer
|
|
- ./config/root-ca/certs/root-ca.pem:/usr/share/wazuh-indexer/config/certs/root-ca.pem
|
|
- ./config/wazuh3_indexer/certs/wazuh3.indexer-key.pem:/usr/share/wazuh-indexer/config/certs/indexer-key.pem
|
|
- ./config/wazuh3_indexer/certs/wazuh3.indexer.pem:/usr/share/wazuh-indexer/config/certs/indexer.pem
|
|
|
|
wazuh.dashboard:
|
|
image: wazuh/wazuh-dashboard:5.0.1
|
|
hostname: wazuh.dashboard
|
|
container_name: multi-node-wazuh.dashboard
|
|
restart: always
|
|
healthcheck:
|
|
test: [ "CMD", "curl", "-k", "-s", "-o", "/dev/null", "https://localhost:5601/login" ]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 30s
|
|
ports:
|
|
- 443:5601
|
|
environment:
|
|
- SERVER_PORT=5601
|
|
- SERVER_HOST=0.0.0.0
|
|
- OPENSEARCH_HOSTS=["https://wazuh1.indexer:9200","https://wazuh2.indexer:9200","https://wazuh3.indexer:9200"]
|
|
- INDEXER_USERNAME=admin
|
|
- INDEXER_PASSWORD=admin
|
|
- WAZUH_API_URL=https://wazuh.master
|
|
- DASHBOARD_USERNAME=kibanaserver
|
|
- DASHBOARD_PASSWORD=kibanaserver
|
|
- SERVER_SSL_CERTIFICATE=/usr/share/wazuh-dashboard/config/certs/wazuh-dashboard.pem
|
|
- SERVER_SSL_KEY=/usr/share/wazuh-dashboard/config/certs/wazuh-dashboard-key.pem
|
|
- OPENSEARCH_SSL_CERTIFICATE_AUTHORITIES=/usr/share/wazuh-dashboard/config/certs/root-ca.pem
|
|
volumes:
|
|
- ./config/wazuh_dashboard/certs/wazuh.dashboard.pem:/usr/share/wazuh-dashboard/config/certs/wazuh-dashboard.pem
|
|
- ./config/wazuh_dashboard/certs/wazuh.dashboard-key.pem:/usr/share/wazuh-dashboard/config/certs/wazuh-dashboard-key.pem
|
|
- ./config/root-ca/certs/root-ca.pem:/usr/share/wazuh-dashboard/config/certs/root-ca.pem
|
|
- wazuh-dashboard-config:/usr/share/wazuh-dashboard/config
|
|
- wazuh-dashboard-custom:/usr/share/wazuh-dashboard/plugins/wazuh/public/assets/custom
|
|
depends_on:
|
|
wazuh1.indexer:
|
|
condition: service_healthy
|
|
wazuh.master:
|
|
condition: service_healthy
|
|
|
|
nginx:
|
|
image: nginx:stable
|
|
hostname: nginx
|
|
container_name: multi-node-nginx
|
|
restart: always
|
|
ports:
|
|
- "1514:1514"
|
|
depends_on:
|
|
- wazuh.master
|
|
- wazuh.worker
|
|
- wazuh.dashboard
|
|
volumes:
|
|
- ./config/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
|
|
|
|
volumes:
|
|
master-wazuh-api-configuration:
|
|
master-wazuh-etc:
|
|
master-wazuh-logs:
|
|
master-wazuh-queue:
|
|
master-wazuh-var-multigroups:
|
|
worker-wazuh-api-configuration:
|
|
worker-wazuh-etc:
|
|
worker-wazuh-logs:
|
|
worker-wazuh-queue:
|
|
worker-wazuh-var-multigroups:
|
|
wazuh-indexer-data-1:
|
|
wazuh-indexer-data-2:
|
|
wazuh-indexer-data-3:
|
|
wazuh-dashboard-config:
|
|
wazuh-dashboard-custom:
|