You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CentOS 9 Stream中通过TCP/UDP发送Zeek日志至指定端口?

Zeek原生日志转发至SIEM收集器(TCP/UDP)

Zeek本身提供了原生的日志输出框架,无需第三方工具即可将日志通过TCP或UDP发送至指定的SIEM收集器端口,核心是利用内置的日志writer组件实现。

一、UDP日志转发配置

  1. 创建转发脚本(例如forward-logs-udp.zeek):
@load base/frameworks/logging/writers/udp

# 替换为你的SIEM收集器地址和端口
global siem_udp_host = "192.168.1.100"
global siem_udp_port = 514

event zeek_init() &priority=5
    {
    # 为所有活跃日志流添加UDP writer
    for (id in Log::active_streams)
        {
        Log::add_writer(id, Log::WRITER_UDP, [$address=siem_udp_host, $port=siem_udp_port]);
        }
    }
  1. 加载脚本生效:
    • 临时生效:启动Zeek时指定脚本,例如 zeek -i eth0 forward-logs-udp.zeek
    • 永久生效:将脚本放入Zeek的site目录(通常为/usr/local/zeek/share/zeek/site/),并在local.zeek中添加 @load ./forward-logs-udp.zeek

二、TCP日志转发配置

Zeek原生支持TCP持久连接的日志转发,配置逻辑与UDP类似:

  1. 创建转发脚本(例如forward-logs-tcp.zeek):
@load base/frameworks/logging/writers/tcp

# 替换为你的SIEM收集器地址和端口
global siem_tcp_host = "192.168.1.100"
global siem_tcp_port = 514

event zeek_init() &priority=5
    {
    # 为所有活跃日志流添加TCP writer
    for (id in Log::active_streams)
        {
        Log::add_writer(id, Log::WRITER_TCP, [$address=siem_tcp_host, $port=siem_tcp_port]);
        }
    }
  1. 加载方式与UDP配置相同,TCP writer默认会在连接断开后自动尝试重连。

三、转发指定类型日志

如果不需要转发所有日志,可指定特定日志类型(例如仅转发HTTP和DNS日志):
修改脚本中的zeek_init函数:

event zeek_init() &priority=5
    {
    # 指定需要转发的日志类型
    local target_streams = set(HTTP::LOG, DNS::LOG);
    for (id in target_streams)
        {
        Log::add_writer(id, Log::WRITER_UDP, [$address=siem_udp_host, $port=siem_udp_port]);
        }
    }

四、JSON格式日志转发

若SIEM更易解析JSON格式,可结合JSON writer与网络转发:

@load base/frameworks/logging/writers/json
@load base/frameworks/logging/writers/udp

global siem_udp_host = "192.168.1.100"
global siem_udp_port = 514

event zeek_init() &priority=5
    {
    for (id in Log::active_streams)
        {
        Log::add_writer(id, Log::WRITER_JSON, [$writer=Log::WRITER_UDP, $writer_opts=[$address=siem_udp_host, $port=siem_udp_port]]);
        }
    }

注意事项

  • 确保SIEM收集器的目标端口已开放防火墙规则,允许Zeek主机的连接/数据包
  • 可通过zeek -C -i <接口> <脚本名>启动Zeek并测试日志转发,验证SIEM是否接收成功

内容的提问来源于stack exchange,提问作者amelia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 02:23:20