首页
/ OpenCTI平台开发环境Docker Compose配置详解

OpenCTI平台开发环境Docker Compose配置详解

2025-07-07 03:58:06作者:魏献源Searcher

概述

OpenCTI是一个开源威胁情报平台,用于管理、组织和可视化网络威胁情报数据。本文将深入解析其开发环境使用的Docker Compose配置文件,帮助开发者理解各服务组件及其配置要点。

核心服务组件

1. 数据存储服务

Redis服务

  • 使用Redis 8.0.0版本
  • 提供6379端口访问
  • 配套RedisInsight可视化工具(8001端口)

Elasticsearch服务

  • 采用Elasticsearch 8.18.2版本
  • 配置2GB堆内存(-Xms2G -Xmx2G)
  • 禁用安全功能(xpack.security.enabled=false)
  • 挂载数据卷(esdata)和快照卷(essnapshots)
  • 提供9200(REST API)和9300(集群通信)端口

Kibana服务

  • 与Elasticsearch版本匹配(8.18.2)
  • 通过环境变量连接Elasticsearch
  • 提供5601端口访问

2. 消息队列服务

RabbitMQ服务

  • 使用4.1-management版本(带管理界面)
  • 提供5672(AMQP)和15672(管理界面)端口
  • 挂载自定义配置文件(rabbitmq.config)

3. 对象存储服务

MinIO服务

  • 最新版本容器
  • 提供9000(API)、9001(控制台)和35300端口
  • 默认凭证为ChangeMe/ChangeMe(需修改)
  • 包含健康检查配置

可选服务组件

1. OpenSearch替代方案

OpenSearch服务

  • 使用3.0.0版本
  • 需要显式启用(--profile opensearch)
  • 初始管理员密码GraceH00per!(需符合复杂度要求)
  • 配置2GB堆内存
  • 提供9201(映射到容器9200)和9600端口

OpenSearch Dashboards

  • 版本2.19.2
  • 映射5602到容器5601端口
  • 禁用安全插件

2. 认证服务

Keycloak(SAML/OpenID)

  • 26.2.5版本
  • 需要显式启用(--profile keycloak)
  • 提供9999端口
  • 默认管理员admin/admin

LDAP服务

  • OpenLDAP 1.5.0
  • 配套phpLDAPadmin(8888端口)
  • 默认配置example.org域
  • 管理员DN: cn=admin,dc=example,dc=org
  • 密码: 12341234

3. 监控与追踪

Jaeger Tracing

  • 全功能版本
  • 提供16686(UI)和4318(OTLP)端口

Pyroscope

  • 持续分析工具
  • 4040端口

OpenTelemetry Collector

  • 0.123.0版本
  • 加载自定义配置文件(otlp-config.yaml)
  • 1010和8889端口

配置要点解析

  1. 资源限制

    • Elasticsearch/OpenSearch配置了内存锁定(mlock)和文件描述符限制(nofile)
    • 显式设置JVM堆大小防止容器OOM
  2. 数据持久化

    • 使用命名卷(esdata, osdata等)持久化关键数据
    • 快照卷单独配置便于备份管理
  3. 服务依赖

    • 使用depends_on确保服务启动顺序
    • Kibana明确依赖Elasticsearch
  4. 安全实践

    • 开发环境禁用安全功能(xpack.security.enabled=false)
    • 生产环境需重新配置安全选项
  5. 调试支持

    • 包含SMTP测试服务(MailDev)
    • 各种管理界面端口开放

部署建议

  1. 基础开发环境:
docker compose up -d
  1. 启用OpenSearch替代方案:
docker compose --profile opensearch up -d
  1. 启用认证服务:
docker compose --profile keycloak up -d
# 或
docker compose --profile ldap up -d
  1. 启用监控追踪:
docker compose --profile telemetry up -d

总结

OpenCTI开发环境的Docker Compose配置精心设计了模块化的服务架构,既包含了必需的核心组件,也提供了多种可选服务。通过profile机制可以灵活组合不同功能模块,满足从基础开发到完整功能验证的各种需求。理解这些配置有助于开发者快速搭建环境并进行定制化调整。