Eventum 的即用型生成器项目,可生成模仿真实 SIEM 数据源的逼真合成事件。每个生成器输出兼容 ECS 的 JSON,可直接导入 Elasticsearch、OpenSearch 或任何 SIEM 平台。
git clone https://github.com/eventum-generator/content-packs.git
cd content-packs
docker compose up -d
这将启动 Eventum 服务器,端口为 9474,所有生成器可用。通过 http://localhost:9474 的 REST API 管理实例。
# Install Eventum
uv tool install eventum-generator
# Clone this repository
git clone https://github.com/eventum-generator/content-packs.git
cd content-packs
# Run a generator (outputs to generators/windows-security/output/events.json)
eventum generate \
--path generators/windows-security/generator.yml \
--id winlog \
--live-mode true
事件以 JSON 格式逐行写入生成器目录下的 output/events.json 文件中:
{
"@timestamp": "2026-02-21T12:00:01.234567+00:00",
"event": {
"action": "logged-in",
"category": ["authentication"],
"code": "4624",
"kind": "event",
"outcome": "success"
},
"user": {
"domain": "CONTOSO",
"name": "jsmith"
},
"winlog": {
"channel": "Security",
"event_id": "4624",
"logon": { "type": "Network" }
}
}
每个生成器目录都包含一个 README.md 文件,介绍了涵盖的事件类型、参数、使用示例和示例输出。
content-packs/
├── config/
│ ├── eventum.yml # Eventum server configuration
│ └── startup.yml # Generator instance startup config
├── generators/
│ └── <category>-<source>/ # e.g. windows-security
│ ├── generator.yml # Pipeline config (input → event → output)
│ ├── README.md # Data source docs, parameters, usage
│ ├── templates/ # Jinja2 templates (.json.jinja)
│ ├── samples/ # CSV/JSON data files
│ └── scripts/ # Python scripts (if needed)
├── logs/ # Runtime log output
├── docker-compose.yml # Docker Compose for Eventum server
└── LICENSE # Apache 2.0
每个生成器都是自包含的——所有文件路径都相对于生成器目录,因此生成器可以独立复制、移动或组合。
# Live mode — generates events continuously
eventum generate \
--path generators/windows-security/generator.yml \
--id winlog \
--live-mode true
# Live mode — generates as fast as possible untill stopped
eventum generate \
--path generators/windows-security/generator.yml \
--id winlog \
--live-mode false
事件写入生成器目录下的 output/events.json。
在 config/startup.yml 中定义实例,然后运行服务器:
# config/startup.yml
- id: winlog
path: windows-security
# With CLI
eventum run
# Or with Docker
docker compose up -d
Docker 设置将 config/、generators/ 和 logs/ 挂载到容器中。服务器配置位于 config/eventum.yml。
编辑任意 generator.yml 中的 input 部分:
input:
- cron:
expression: "* * * * * *"
count: 5 # 5 events/second (~18K/hour)
默认情况下,生成器将事件写入生成器目录下的 output/events.json。要更改输出目标(例如 OpenSearch、ClickHouse、HTTP),请编辑 generator.yml 中的 output 部分。有关可用输出插件的详细信息,请参阅 Eventum 文档。
欢迎贡献!如果您为自己用例构建了生成器,并认为其他人也能从中受益,我们很乐意将其纳入。
<category>-<source> 格式(例如 linux-auditd、web-nginx)<event-id-or-type>.json.jinjaeventum generate 开箱即用(文件输出到 output/events.json)params 表示环境特定值(主机名、域名等)——切勿在模板中硬编码README.md,介绍事件类型、参数、使用示例和示例输出本项目采用 Apache License 2.0 许可。