scalytics/kafSIEM
GitHub: scalytics/kafSIEM
一个基于 Kafka 的 OSINT/SIEM 栈,提供 AgentOps 流程追踪与全球情报监控能力。
Stars: 36 | Forks: 6
# EUOSINT
EUOSINT 是我们 OSINT 流水线的开源版本,已用于多个安装场景并打包为本地和服务器部署。
它现在提供了两个独立的操作界面:
- `OSINT`:现有的以全球为主的外部情报工作流
- `AgentOps`:基于 Kafka 的流程追踪,用于 KafClaw 代理通信
- `HYBRID`:AgentOps 加上选择性的外部 OSINT 上下文
本仓库已移除非公开、内部和受保护的源集成,同时保持操作流水线结构不变,已准备好公开使用。
## 开源范围
- 公开可用的 OSINT 流水线架构
- 基于 Kafka 的 AgentOps 流程追踪(适用于 KafClaw 风格代理流量)
- 优先使用 Docker 的部署方式,确保可重复安装
- Web 仪表盘 + Go 采集器运行时
- 可配置的摄取与刷新频率
## 运行模式
运行时模式由环境和挂载的策略文件决定。
- `UI_MODE=OSINT` 保持现有 OSINT 产品行为
- `UI_MODE=AGENTOPS` 将桌面 UI 切换到 AgentOps 流程面板
- `UI_MODE=HYBRID` 以 AgentOps 为主并添加选择性的外部情报上下文
AgentOps 是代码库中的一个独立边界域:
- 后端:`internal/agentops/...`
- 前端:`src/agentops/...`
它未实现为通用插件树。
## 使用 Docker 运行
```
if command -v docker-compose >/dev/null 2>&1; then
docker-compose up --build
else
docker compose up --build
fi
```
应用将在 `http://localhost:8080` 可用。
你也可以使用 Make 目标进行本地 HTTP 开发:
```
make dev-start
make dev-stop
make dev-restart
make dev-logs
```
对于本地 AgentOps 演示(使用模拟的 Kafka 衍生流量和真实仪表盘):
```
npm run demo:agentops
```
这将通过 `/?demo=agentops` 直接以 `AgentOps` 模式打开桌面 UI,从 `public/demo/*.json` 提供演示状态,并在本地模拟回放端点。
## 远程安装(wget 引导)
```
wget -qO- https://raw.githubusercontent.com/scalytics/EUOSINT/main/deploy/install.sh | bash
```
安装程序将执行以下操作:
- 验证 Docker + Compose 是否可用
- 在主机上克隆或更新仓库
- 设置 GHCR 运行时镜像(`ghcr.io/scalytics/euosint-web` + `ghcr.io/scalytics/euosint-collector`)
- 提示选择安装模式(`preserve` 或 `fresh` 卷重置)
- 提示设置域名(`EUOSINT_SITE_ADDRESS`)
- 启用域名模式时,可选检查 `ufw`/`firewalld` 并验证本地 80/443 可用性
- 仅提示必要的运行时密钥(URL、API 凭证、可选的 LLM 开关)
- 可选运行 `docker compose pull` 并以 `--no-build` 启动
- 发布流水线构建两个镜像:Web 镜像和 Go 采集器镜像
- 定时数据刷新流程运行 Go 采集器
- Web 镜像使用 Caddy,并将采集器输出在运行时挂载到 Web 容器中
- 在 Docker 开发模式下,采集器会在新卷上初始化空的 JSON 输出,并在首次成功运行时写入实时输出
## 在本地不使用 Docker 运行
```
volta install node@25.8.1 npm@11.11.0
npm install
npm run fetch:alerts:watch
npm run dev
```
对于具备自动重启功能的 24/7 采集:
```
npm run collector:run
```
调优示例:
```
INTERVAL_MS=120000 MAX_PER_SOURCE=80 npm run collector:run
INTERVAL_MS=120000 RECENT_WINDOW_PER_SOURCE=20 ALERT_STALE_DAYS=14 npm run collector:run
```
运行时所需的最少变量位于 [.env.example](https://github.com/scalytics/EUOSINT/blob/main/.env.example)。
高级调优变量和默认值记录在 [docs/advanced-config.md](https://github.com/scalytics/EUOSINT/blob/main/docs/advanced-config.md)。
AgentOps 专属运行时参数包括:
- `AGENTOPS_ENABLED`
- `AGENTOPS_BROKERS`
- `AGENTOPS_GROUP_NAME`
- `AGENTOPS_GROUP_ID`
- `AGENTOPS_POLICY_PATH`
- `AGENTOPS_REPLAY_ENABLED`
- `AGENTOPS_REJECT_TOPIC`
- `AGENTOPS_OUTPUT_PATH`
- `UI_MODE`
- `PROFILE`
- `UI_POLICY_PATH`
启用 AgentOps 时,采集器会将 `agentops-state.json` 写入运行时数据卷,Web 仪表盘将直接读取该状态。
挂载约定:
- `/config`:策略与 UI 控制文件
- `/data`:生成的 AgentOps 状态与重放元数据
内容行为明确:
- 常规 Kafka 记录从 Kafka 值解码并在 AgentOps 详细视图中展示
- 基于 LFS 的记录仅显示指针元数据(`s3://bucket/key`)
- 默认产品流程不会为基于 LFS 的记录获取 blob 内容
- 被拒绝的记录可镜像到 `AGENTOPS_REJECT_TOPIC`
- 回放始终使用独立消费者组,不会修改实时追踪组
操作员参考与示例位于 [docs/agentops-operator-guide.md](https://github.com/scalytics/EUOSINT/blob/main/docs/agentops-operator-guide.md)。
## 运维
```
make check
make ci
make docker-build
```
- `make release-patch`、`make release-minor` 和 `make release-major` 会创建并推送语义化版本标签,触发发布流水线
- `.github/workflows/branch-protection.yml` 使用 `ADMIN_GITHUB_TOKEN` 仓库密钥保护 `main` 分支
- Docker 验证通过 `buildx` 进行,发布镜像推送到 GHCR 的语义化版本标签
- 发布镜像以 `ghcr.io//-web` 和 `ghcr.io//-collector` 发布
- `docker-compose up --build` 或 `docker compose up --build` 会以后台刷新服务运行 Go 采集器,并通过 Caddy 容器提供生成的 JSON
- 虚拟机/域名部署说明位于 [docs/operations.md](https://github.com/scalytics/EUOSINT/blob/main/docs/operations.md)
- 噪声门、搜索默认值、分析师反馈端点和指标输出记录在 [docs/operations.md](https://github.com/scalytics/EUOSINT/blob/main/docs/operations.md#noise-gate-global-noise--contextual-triage)
## 说明
- 本地工具链通过 `package.json`、`.nvmrc` 和 `.node-version` 固定为 Node `25.8.1` 和 npm `11.11.0`
- Go 采集器是定时数据刷新、Docker 运行时和本地命令的操作后端
- 本仓库有意排除非公开/内部/受保护的集成,并作为开放源码就绪的分发版本维护
- 根目录的 `LICENSE` 适用于仓库本地内容与修改
标签:AgentOps, Docker, ESC4, EVTX分析, Go运行时, KafClaw, Kafka, MITM代理, OSINT, SonarQube插件, Web仪表板, wget引导, 事件监控, 全球情报监控, 刷新频率, 可配置摄取, 安全防御评估, 容器化部署, 开源OSINT管道, 态势分析, 日志审计, 本地开发, 流跟踪, 消息队列, 混合模式, 生产部署, 请求拦截, 远程安装, 风险检测