291 lines
9.5 KiB
YAML
291 lines
9.5 KiB
YAML
# Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2)
|
|
services:
|
|
wazuh.manager:
|
|
image: wazuh/wazuh-manager:4.14.3
|
|
hostname: wazuh.manager
|
|
container_name: wazuh.manager
|
|
restart: unless-stopped
|
|
ulimits:
|
|
memlock:
|
|
soft: -1
|
|
hard: -1
|
|
nofile:
|
|
soft: 655360
|
|
hard: 655360
|
|
ports:
|
|
- "1514:1514"
|
|
- "1515:1515"
|
|
- "514:514/udp"
|
|
- "55000:55000"
|
|
environment:
|
|
- INDEXER_URL=https://wazuh.indexer:9200
|
|
- INDEXER_USERNAME=admin
|
|
- INDEXER_PASSWORD=SecretPassword
|
|
- FILEBEAT_SSL_VERIFICATION_MODE=full
|
|
- SSL_CERTIFICATE_AUTHORITIES=/etc/ssl/root-ca.pem
|
|
- SSL_CERTIFICATE=/etc/ssl/filebeat.pem
|
|
- SSL_KEY=/etc/ssl/filebeat.key
|
|
- API_USERNAME=wazuh-wui
|
|
- API_PASSWORD=MyS3cr37P450r.*-
|
|
volumes:
|
|
- wazuh_api_configuration:/var/ossec/api/configuration
|
|
- wazuh_etc:/var/ossec/etc
|
|
- wazuh_logs:/var/ossec/logs
|
|
- wazuh_queue:/var/ossec/queue
|
|
- wazuh_var_multigroups:/var/ossec/var/multigroups
|
|
- wazuh_integrations:/var/ossec/integrations
|
|
- wazuh_active_response:/var/ossec/active-response/bin
|
|
- wazuh_agentless:/var/ossec/agentless
|
|
- wazuh_wodles:/var/ossec/wodles
|
|
- filebeat_etc:/etc/filebeat
|
|
- filebeat_var:/var/lib/filebeat
|
|
- ./wazuh/config/wazuh_indexer_ssl_certs/root-ca-manager.pem:/etc/ssl/root-ca.pem
|
|
- ./wazuh/config/wazuh_indexer_ssl_certs/wazuh.manager.pem:/etc/ssl/filebeat.pem
|
|
- ./wazuh/config/wazuh_indexer_ssl_certs/wazuh.manager-key.pem:/etc/ssl/filebeat.key
|
|
- ./wazuh/config/wazuh_cluster/wazuh_manager.conf:/wazuh-config-mount/etc/ossec.conf
|
|
- ./wazuh/cve:/cve
|
|
|
|
wazuh.indexer:
|
|
image: wazuh/wazuh-indexer:4.14.3
|
|
hostname: wazuh.indexer
|
|
container_name: wazuh.indexer
|
|
restart: always
|
|
ports:
|
|
- "9200:9200"
|
|
environment:
|
|
- "OPENSEARCH_JAVA_OPTS=-Xms1g -Xmx1g"
|
|
ulimits:
|
|
memlock:
|
|
soft: -1
|
|
hard: -1
|
|
nofile:
|
|
soft: 65536
|
|
hard: 65536
|
|
volumes:
|
|
- wazuh-indexer-data:/var/lib/wazuh-indexer
|
|
- ./wazuh/config/wazuh_indexer_ssl_certs/root-ca.pem:/usr/share/wazuh-indexer/config/certs/root-ca.pem
|
|
- ./wazuh/config/wazuh_indexer_ssl_certs/wazuh.indexer-key.pem:/usr/share/wazuh-indexer/config/certs/wazuh.indexer.key
|
|
- ./wazuh/config/wazuh_indexer_ssl_certs/wazuh.indexer.pem:/usr/share/wazuh-indexer/config/certs/wazuh.indexer.pem
|
|
- ./wazuh/config/wazuh_indexer_ssl_certs/admin.pem:/usr/share/wazuh-indexer/config/certs/admin.pem
|
|
- ./wazuh/config/wazuh_indexer_ssl_certs/admin-key.pem:/usr/share/wazuh-indexer/config/certs/admin-key.pem
|
|
- ./wazuh/config/wazuh_indexer/wazuh.indexer.yml:/usr/share/wazuh-indexer/config/opensearch.yml
|
|
- ./wazuh/config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/config/opensearch-security/internal_users.yml
|
|
|
|
wazuh.dashboard:
|
|
image: wazuh/wazuh-dashboard:4.14.3
|
|
hostname: wazuh.dashboard
|
|
container_name: wazuh.dashboard
|
|
restart: always
|
|
ports:
|
|
- 443:5601
|
|
environment:
|
|
- INDEXER_USERNAME=admin
|
|
- INDEXER_PASSWORD=SecretPassword
|
|
- WAZUH_API_URL=https://wazuh.manager
|
|
- DASHBOARD_USERNAME=kibanaserver
|
|
- DASHBOARD_PASSWORD=kibanaserver
|
|
- API_USERNAME=wazuh-wui
|
|
- API_PASSWORD=MyS3cr37P450r.*-
|
|
volumes:
|
|
- ./wazuh/config/wazuh_indexer_ssl_certs/wazuh.dashboard.pem:/usr/share/wazuh-dashboard/certs/wazuh-dashboard.pem
|
|
- ./wazuh/config/wazuh_indexer_ssl_certs/wazuh.dashboard-key.pem:/usr/share/wazuh-dashboard/certs/wazuh-dashboard-key.pem
|
|
- ./wazuh/config/wazuh_indexer_ssl_certs/root-ca.pem:/usr/share/wazuh-dashboard/certs/root-ca.pem
|
|
- ./wazuh/config/wazuh_dashboard/opensearch_dashboards.yml:/usr/share/wazuh-dashboard/config/opensearch_dashboards.yml
|
|
- ./wazuh/config/wazuh_dashboard/wazuh.yml:/usr/share/wazuh-dashboard/data/wazuh/config/wazuh.yml
|
|
- wazuh-dashboard-config:/usr/share/wazuh-dashboard/data/wazuh/config
|
|
- wazuh-dashboard-custom:/usr/share/wazuh-dashboard/plugins/wazuh/public/assets/custom
|
|
depends_on:
|
|
- wazuh.indexer
|
|
links:
|
|
- wazuh.indexer:wazuh.indexer
|
|
- wazuh.manager:wazuh.manager
|
|
|
|
grafana:
|
|
image: grafana/grafana-enterprise:12.3-ubuntu
|
|
container_name: grafana
|
|
ports:
|
|
- '3000:3000'
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./grafana/datasources:/etc/grafana/provisioning/datasources
|
|
- ./grafana/plugins:/etc/grafana/provisioning/plugins
|
|
environment:
|
|
- GF_INSTALL_PLUGINS=alexanderzobnin-zabbix-app, volkovlabs-form-panel, grafana-llm-app, consensys-asko11y-app
|
|
- GF_PLUGINS_ALLOW_LOADING_SIGNED_PLUGINS=alexanderzobnin-zabbix-app
|
|
- GF_FEATURE_TOGGLES_ENABLE=externalServiceAccounts
|
|
- GF_AUTH_MANAGED_SERVICE_ACCOUNTS_ENABLED=true
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:3000/"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 6
|
|
start_period: 20s
|
|
|
|
server:
|
|
image: zabbix/zabbix-server-pgsql:ubuntu-7.4-latest
|
|
container_name: zabbix-server
|
|
ports:
|
|
- "10051:10051"
|
|
volumes:
|
|
- /etc/localtime:/etc/localtime:ro
|
|
- /etc/timezone:/etc/timezone:ro
|
|
- ./zabbix/zbx_env/usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts:ro
|
|
- ./zabbix/zbx_env/usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscripts:ro
|
|
- ./zabbix/zbx_env/var/lib/zabbix/export:/var/lib/zabbix/export:rw
|
|
- ./zabbix/zbx_env/var/lib/zabbix/modules:/var/lib/zabbix/modules:ro
|
|
- ./zabbix/zbx_env/var/lib/zabbix/enc:/var/lib/zabbix/enc:ro
|
|
- ./zabbix/zbx_env/var/lib/zabbix/ssh_keys:/var/lib/zabbix/ssh_keys:ro
|
|
- ./zabbix/zbx_env/var/lib/zabbix/mibs:/var/lib/zabbix/mibs:ro
|
|
- ./zabbix/zbx_env/var/lib/zabbix/snmptraps:/var/lib/zabbix/snmptraps:ro
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- postgres-server
|
|
environment:
|
|
- POSTGRES_USER=zabbix
|
|
- POSTGRES_PASSWORD=zabbix
|
|
- POSTGRES_DB=zabbixNew
|
|
- ZBX_HISTORYSTORAGETYPES=log,text
|
|
- ZBX_DEBUGLEVEL=1
|
|
- ZBX_HOUSEKEEPINGFREQUENCY=1
|
|
- ZBX_MAXHOUSEKEEPERDELETE=5000
|
|
- ZBX_PROXYCONFIGFREQUENCY=3600
|
|
|
|
web-nginx-pgsql:
|
|
image: zabbix/zabbix-web-nginx-pgsql:ubuntu-7.4-latest
|
|
container_name: zabbix-web
|
|
ports:
|
|
- "8080:8080"
|
|
- "8443:8443"
|
|
volumes:
|
|
- /etc/localtime:/etc/localtime:ro
|
|
- /etc/timezone:/etc/timezone:ro
|
|
- ./zabbix/zbx_env/etc/ssl/nginx:/etc/ssl/nginx:ro
|
|
- ./zabbix/zbx_env/usr/share/zabbix/modules/:/usr/share/zabbix/modules/:ro
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8080/"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 3
|
|
start_period: 30s
|
|
sysctls:
|
|
- net.core.somaxconn=65535
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- server
|
|
- postgres-server
|
|
environment:
|
|
- POSTGRES_USER=zabbix
|
|
- POSTGRES_PASSWORD=zabbix
|
|
- POSTGRES_DB=zabbixNew
|
|
- ZBX_SERVER_HOST=server
|
|
- ZBX_POSTMAXSIZE=64M
|
|
- PHP_TZ=Europe/Madrid
|
|
- ZBX_MAXEXECUTIONTIME=500
|
|
|
|
agent:
|
|
image: zabbix/zabbix-agent2:ubuntu-7.4-latest
|
|
container_name: zabbix-agent
|
|
ports:
|
|
- "10050:10050"
|
|
volumes:
|
|
- /etc/localtime:/etc/localtime:ro
|
|
- /etc/timezone:/etc/timezone:ro
|
|
- ./zabbix/zbx_env/etc/zabbix/zabbix_agentd.d:/etc/zabbix/zabbix_agentd.d:ro
|
|
- ./zabbix/zbx_env/var/lib/zabbix/modules:/var/lib/zabbix/modules:ro
|
|
- ./zabbix/zbx_env/var/lib/zabbix/enc:/var/lib/zabbix/enc:ro
|
|
- ./zabbix/zbx_env/var/lib/zabbix/ssh_keys:/var/lib/zabbix/ssh_keys:ro
|
|
privileged: true
|
|
pid: "host"
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- server
|
|
environment:
|
|
- ZBX_SERVER_HOST=server
|
|
|
|
snmptraps:
|
|
image: zabbix/zabbix-snmptraps:ubuntu-7.4-latest
|
|
container_name: zabbix-snmptraps
|
|
ports:
|
|
- "162:1162/udp"
|
|
volumes:
|
|
- ./zabbix/snmptraps:/var/lib/zabbix/snmptraps:rw
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- server
|
|
environment:
|
|
- ZBX_SERVER_HOST=server
|
|
|
|
postgres-server:
|
|
container_name: zabbix-postgres
|
|
image: postgres:16-alpine
|
|
volumes:
|
|
- ./zabbix/zbx_env/var/lib/postgresql/data:/var/lib/postgresql/data:rw
|
|
restart: unless-stopped
|
|
environment:
|
|
- POSTGRES_PASSWORD=zabbix
|
|
- POSTGRES_USER=zabbix
|
|
- POSTGRES_DB=zabbixNew
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
inicio-dashboards:
|
|
build: ./grafana/dashboards
|
|
container_name: inicio-dashboards
|
|
volumes:
|
|
- ./grafana/dashboards:/grafana/dashboards
|
|
depends_on:
|
|
grafana:
|
|
condition: service_healthy
|
|
|
|
ollama:
|
|
build: ./ollama
|
|
container_name: ollama
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./ollama/:/usr/local
|
|
environment:
|
|
- OLLAMA_NUM_THREADS=10
|
|
- OLLAMA_NUM_PARALLEL=1
|
|
- OLLAMA_MAX_LOADED_MODELS=1
|
|
ports:
|
|
- "11434:11434"
|
|
|
|
openwebui:
|
|
image: ghcr.io/open-webui/open-webui:main
|
|
container_name: openwebui
|
|
restart: unless-stopped
|
|
environment:
|
|
- OLLAMA_BASE_URL=http://ollama:11434
|
|
volumes:
|
|
- openwebui:/app/backend/data
|
|
ports:
|
|
- "3500:8080"
|
|
depends_on:
|
|
- ollama
|
|
|
|
grafana-mcp:
|
|
image: mcp/grafana
|
|
container_name: grafana-mcp
|
|
ports:
|
|
- "8001:8000"
|
|
|
|
volumes:
|
|
wazuh_api_configuration:
|
|
wazuh_etc:
|
|
wazuh_logs:
|
|
wazuh_queue:
|
|
wazuh_var_multigroups:
|
|
wazuh_integrations:
|
|
wazuh_active_response:
|
|
wazuh_agentless:
|
|
wazuh_wodles:
|
|
filebeat_etc:
|
|
filebeat_var:
|
|
wazuh-indexer-data:
|
|
wazuh-dashboard-config:
|
|
wazuh-dashboard-custom:
|
|
ollama:
|
|
openwebui: |