first commit

This commit is contained in:
2026-04-09 13:05:27 +02:00
commit 3bbd7d6413
3084 changed files with 84284 additions and 0 deletions

291
docker-compose.yml Normal file
View File

@@ -0,0 +1,291 @@
# 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: