corelight/zeek-log-writer-nats

GitHub: corelight/zeek-log-writer-nats

将 Zeek 网络安全监控日志实时写入 NATS JetStream 的输出插件,便于构建流式日志处理管道。

Stars: 1 | Forks: 0

# Zeek Log Writer NATS 为 [NATS.io Connective Technology](https://nats.io/) 提供一个 Zeek log writer 实现。 [JetStream](https://docs.nats.io/nats-concepts/jetstream) 持久化系统。 ## 需求与安装 此插件有一个构建依赖项,即 [nats.c](https://github.com/nats-io/nats.c) 客户端库。 构建系统会自动检测该库是通过 apt 还是 vcpkg 安装的, 两者产生的构建结果完全相同。 **使用 apt (Debian/Ubuntu):** ``` $ apt-get update && apt-get install libnats-dev $ ./configure && make $ sudo make install ``` **使用 vcpkg:** ``` $ vcpkg install cnats $ ./configure && make $ sudo make install ``` 构建过程将首先寻找系统的 `libnats-dev` 库。如果未找到,则会回退 使用 vcpkg 的 `cnats` 包。 ``` $ vcpkg install cnats $ ./configure && make $ sudo make install ``` 构建过程将首先寻找系统的 `libnats-dev` 库。如果未找到,则会回退 使用 vcpkg 的 `cnats` 包。 ## 测试 在编译并安装该插件后,请验证 Zeek 是否能够加载该插件: ``` $ zeek -NN Zeek::Log_Writer_NATS Zeek::Log_Writer_NATS - Log writer sending to NATS (dynamic, version 0.0.6) [Writer] NATS (Log::WRITER_NATS) ``` 可以按照以下步骤针对本地运行的 NATS 服务器进行测试: 在一个终端中启动 NATS 服务器,默认情况下它将监听端口 4222,这也 是该插件默认使用的端口。 ``` $ nats-server -js ``` 将 Zeek 的 `Log::default_writer` 更改为 `Log::WRITER_NATS` 并监听一个接口: ``` $ zeek -C -i lo Log::default_writer=Log::WRITER_NATS ``` 在另一个终端中,使用 `nats` CLI 订阅该插件使用的默认 subject。 这将显示 Zeek 实例生成的所有日志。 ``` $ nats subscribe 'sensor.logs.*' 17:51:56 Subscribing on sensor.logs.* [#1] Received on "sensor.logs.conn" with reply "_INBOX.9X1BKP55Y367UVU5Q31QM4.32" {"ts":1708620711.443446,"uid":"Cbsjg31hoFHw6fkJch","id.orig_h":"172.17.0.2","id.orig_p":47476,"id.resp_h":"192.0.78.212","id.resp_p":443,"proto":"tcp","service":"ssl","duration":2.2717180252075195,"orig_bytes":758,"resp_bytes":86930,"conn_state":"SF","local_orig":true,"local_resp":false,"missed_bytes":0,"history":"ShADadFf","orig_pkts":48,"orig_ip_bytes":2698,"resp_pkts":48,"resp_ip_bytes":88862} ```
标签:Bro, C++, DNS解析, JetStream, libnats, NATS, Rootkit, Zeek, 中间件, 内核模式, 实时数据, 开源项目, 数据持久化, 数据擦除, 数据管道, 日志 Writer, 日志传输, 日志集成, 消息队列, 网络安全, 软件工程, 隐私保护