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插件, 安全运营, 性能优化, 性能监控, 扫描框架, 数据传输, 数据流, 日志传输, 日志管理, 检测绕过, 源代码构建, 系统分析, 网络分析, 网络安全, 软件安装, 隐私保护