stefanDeveloper/zeek-fluvio

GitHub: stefanDeveloper/zeek-fluvio

一款将 Zeek 网络监控日志实时推送至 Fluvio 流平台的高性能日志写入器插件。

Stars: 1 | Forks: 0

# Zeek-Fluvio 插件 一款高性能的 Zeek 日志写入器插件,可将遥测数据负载无缝桥接至 **Fluvio** 流。该插件基于 [Fluvio C++ Client](https://github.com/infinyon/fluvio-client-cpp) 原生构建,确保为安全运营和网络分析提供低延迟的数据接入。 ## 🚀 功能特性 - **原生 C++ 性能**:利用官方 Fluvio C++ SDK 实现高吞吐量的日志传输。 - **选择性日志流**:通过 Zeek 脚本精细控制发送到 Fluvio 的日志。 - **自动 Topic 映射**:将 Zeek 日志流(例如 `conn`、`dns`、`http`)动态映射到 Fluvio topics。 - **TLS 支持**:支持可编程的 mTLS 认证,以构建安全的数据管道。 ## 🛠️ 安装 ### 使用 Zeek Package Manager (zkg) 安装该插件最简单的方法是通过 `zkg`: ``` zkg install zeek-fluvio ``` ### 手动构建 如果您更喜欢从源代码构建: ``` git clone https://github.com/infinyon/zeek-fluvio cd zeek-fluvio ./configure --zeek-dist=/path/to/zeek/source make -C build sudo make -C build install ``` ## ⚙️ 配置 该插件通过 Zeek 中的 `Fluvio` 模块进行配置。请将以下内容添加到您的 `local.zeek` 或自定义策略脚本中: ### 基础设置 要将所有活动的 Zeek 日志发送到 Fluvio: ``` redef Fluvio::send_all_active_logs = T; ``` ### 选择性日志记录 仅发送特定的日志(例如 Connection 和 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` | `""` | 覆盖默认的 topic 映射(如果为空,则使用日志路径)。 | ## 🏗️ 架构 该插件实现了一个名为 `FLUVIOWRITER` 的自定义 `Log::Writer`。当在 Zeek 中写入日志记录时,该插件会: 1. 将记录格式化为 JSON。 2. 识别目标 Fluvio topic(默认为日志的路径)。 3. 将负载异步分发到 Fluvio SPU 集群。
标签:C++, Fluvio, Homebrew安装, IP 地址批量处理, Kafka替代, mTLS, OISF, Rootkit, TLS, Zeek, zkg, 命令控制, 安全运营, 实时数据, 开源, 扫描框架, 插件, 数据擦除, 数据流, 数据管道, 数据采集, 日志传输, 日志管理, 流处理, 消息队列, 系统分析, 网络分析, 网络安全, 软件工程, 遥测数据, 防御工具, 隐私保护