在生产环境中运行 (Open Source)
生产环境使用(配合 Docker compose)
该代码库中的 docker-compose.yml 文件功能完整,可用于在本地环境中评估 DefectDojo。
尽管 Docker Compose 是在生产环境中部署容器化 DefectDojo 的受支持安装方法之一,但在未先根据您的具体情况进行自定义之前,docker-compose.yml 文件并不适合直接用于生产环境。
有关如何使用 Docker Compose 运行 DefectDojo 的更多信息,请参阅使用 Docker Compose 运行。
系统要求
建议使用专用数据库服务器,而不是预配置的 PostgreSQL 数据库。这将显著提升 DefectDojo 的性能。
实例规模
在使用独立数据库的情况下,运行 DefectDojo 的最低建议配置为:
- 2 个 vCPU
- 8 GB 内存
- 10 GB 磁盘空间(请记住,数据库并不在这里-- 因此 您为操作系统分配的空间应该就足够了)。您可以为 潜在的性能提升分配一块与操作系统's 不同的磁盘。
安全性
请验证 nginx 配置以及安全标头等其他运行时方面的设置,以符合您的合规要求。
请将 docker-compose.yml 中的 AES256 加密密钥 &91a*agLqesc*0DJ+2*bAbsUZfR*4nLw 更改为适用于您实例的唯一密钥。
该加密密钥用于加密存储在 Defect Dojo 中、用以连接 SonarQube 等外部工具的 API 密钥及其他凭据。可以通过多种方式生成密钥,例如使用密码管理器或 openssl:
openssl rand -base64 32 DD_CREDENTIAL_AES_256_KEY: "${DD_CREDENTIAL_AES_256_KEY:-<PUT THE GENERATED KEY HERE>o}"文件备份
无论是哪种情况(专用数据库还是容器化部署),如果您是自行托管,建议您实施并定期创建数据备份。
媒体文件
上传文件(包括威胁模型和风险接受)的媒体文件存储在一个 docker 卷中。该卷需要定期备份。
性能调优
uWSGI
默认情况下(调试用途的 ptvsd 模式除外),uWSGI 将
处理 16 个并发连接。
根据您的资源设置,您可以调优以下参数:
DD_UWSGI_NUM_OF_PROCESSES,用于设置生成的进程数量。 (默认值为 4)DD_UWSGI_NUM_OF_THREADS,用于设置这些进程中的 线程数量。(默认值为 4)
例如,您可以配置 4 个进程,每个进程 6 个线程,从而产生 24 个 并发连接。
Celery worker
默认情况下,会启动一个单一的单进程 celery worker。在存储大量发现项或执行大型导入时,调整这些参数有助于防止资源枯竭。
以下变量可以在保持单个 celery 容器的同时进行更改,以提升 worker 性能。
DD_CELERY_WORKER_POOL_TYPE让您可以切换到prefork。 (默认值为solo)
启用 prefork 后,必须使用以下
变量。请参阅
Dockerfile.django-* 中的文件内引用。
DD_CELERY_WORKER_AUTOSCALE_MIN默认值为 2。DD_CELERY_WORKER_AUTOSCALE_MAX默认值为 8。DD_CELERY_WORKER_CONCURRENCY默认值为 8。DD_CELERY_WORKER_PREFETCH_MULTIPLIER默认值为 128。
您可以执行以下命令查看配置:
docker compose exec celerybeat bash -c "celery -A dojo inspect stats"
并查看当前生效的配置。
异步导入:已弃用
此功能已在 2.47.0 中移除