ASTRAOS-de/zeek-fluvio
GitHub: ASTRAOS-de/zeek-fluvio
Zeek-Fluvio插件,将Zeek日志数据高效传输至Fluvio。
Stars: 4 | Forks: 2
# Zeek-Fluvio 插件
一个高性能的 Zeek 日志写入插件,能够无缝地将遥测有效载荷桥接到 **Fluvio** 流中。该插件在 [Fluvio C++ 客户端](https://github.com/stefanDeveloper/fluvio-client-cpp) 上原生构建,确保安全操作和网络分析的低延迟数据摄取。
## 🚀 功能
- **原生 C++ 性能**:利用官方 Fluvio C++ SDK 进行高吞吐量日志传输。
- **选择性日志流**:通过 Zeek 脚本对发送到 Fluvio 的日志进行细粒度控制。
- **自动主题映射**:动态地将 Zeek 日志流(例如,`conn`、`dns`、`http`)映射到 Fluvio 主题。
- **TLS 支持**:支持程序化 mTLS 身份验证,用于安全数据管道。
## 🛠️ 安装
### 使用 Zeek 包管理器 (zkg)
安装插件最简单的方法是通过 `zkg`:
```
zkg install zeek-fluvio
```
### 手动构建
如果您更喜欢从源代码构建:
```
git clone https://github.com/stefanDeveloper/zeek-fluvio.git
cd zeek-fluvio
./configure
make -C build
sudo make -C build install
```
## ⚙️ 配置
该插件通过 Zeek 中的 `Fluvio` 模块进行配置。将以下内容添加到您的 `local.zeek` 或自定义策略脚本中:
### 基本设置
要将所有活动 Zeek 日志发送到 Fluvio:
```
redef Fluvio::send_all_active_logs = T;
```
### 选择性日志记录
要将特定日志(例如,连接和 DNS 日志)发送:
```
redef Fluvio::logs_to_send = set(Conn::LOG, DNS::LOG);
```
### 排除日志
要排除敏感日志的流:
```
redef Fluvio::logs_to_exclude = set(Software::LOG);
```
### 选项参考
| 选项 | 类型 | 默认值 | 描述 |
|--------|------|---------|-------------|
| `Fluvio::send_all_active_logs` | `bool` | `F` | 如果为 `T`,则将每个活动日志流发送到 Fluvio。 |
| `Fluvio::logs_to_send` | `set[Log::ID]` | `{}` | 明确要传输的日志集合。 |
| `Fluvio::logs_to_exclude` | `set[Log::ID]` | `{}` | 应该永远不会发送到 Fluvio 的日志。 |
| `Fluvio::default_topic_name` | `string` | `""` | 覆盖默认主题映射(如果为空,则使用日志路径)。 |
## 🏗️ 架构
该插件实现了一个名为 `FLUVIOWRITER` 的自定义 `Log::Writer`。当 Zeek 中写入日志记录时,插件:
1. 将记录格式化为 JSON。
2. 识别目标 Fluvio 主题(默认为日志的路径)。
3. 异步将有效载荷派发到 Fluvio SPU 集群。
标签:C++开发, Fluvio, OISF, TLS加密, Zeek插件, 安全运营, 性能优化, 性能监控, 扫描框架, 数据传输, 数据流, 日志传输, 日志管理, 检测绕过, 源代码构建, 系统分析, 网络分析, 网络安全, 软件安装, 隐私保护