Wazuh 4.x remoted syslog 514 输入移除后如何用 rsyslog 采集网络设备日志?
2026/9/15 20:27:57 网站建设 项目流程

Wazuh 4.x remoted syslog 514 输入移除后如何用 rsyslog 采集网络设备日志?

【免费下载链接】wazuhWazuh - The Open Source Security Platform. Unified XDR and SIEM protection for endpoints and cloud workloads.项目地址: https://gitcode.com/GitHub_Trending/wa/wazuh

在 Wazuh 4.x 中,manager 的remoted模块可以直接在 514 端口接收网络设备(防火墙、路由器、交换机)发来的原始 syslog 消息,配置方式是 manager 的ossec.conf里写<connection>syslog</connection>。从 Wazuh 5.0 开始,这个 syslog 输入能力从remoted中被移除,该模块只负责加密的 agent 连接,514 端口的远程 syslog 输入不再可用。如果原来依赖这条链路采集网络设备日志,需要改为:在一台采集主机上部署 rsyslog 接收 514 端口的 syslog,再在该主机上安装 Wazuh agent,由 agent 的 logcollector 把消息转发给 Wazuh manager。这条迁移没有自动迁移工具,rsyslog 和 agent 都要手动配置。

本文基于 rsyslog 迁移指南,覆盖两种落地方案:rsyslog 写入 systemd journal(Option A),以及 rsyslog 写入按主机拆分的日志文件(Option B)。

4.x 与 5.x 的差异对照

方面Wazuh 4.xWazuh 5.x
Syslog 接收方managerremoted(514 端口)外部 syslog 守护进程(rsyslog)
日志进入方式直接进入analysisd经 Wazuh agent 的 logcollector
配置位置managerossec.conf<remote>rsyslog 配置 + agentossec.conf
采集主机上是否需要 agent不需要需要——5.0 中 manager 不再自带 agent
IP 白名单/黑名单ossec.conf<allowed-ips>/<denied-ips>rsyslog$AllowedSender或主机防火墙规则

rsyslog 转发到 manager 的 syslog 消息体与remoted之前从 514 端口收到的内容一致,因此现有的网络设备 decoder 和规则(如cisco-asapfjuniper)无需修改继续生效。

准备条件

开始配置前确认以下条件都已满足:

  • Wazuh 5.0 或更高版本已完整部署(indexer、manager、dashboard);
  • 一台用于运行 rsyslog 的 Linux 主机——可以是 Wazuh manager 所在主机,也可以是独立服务器;
  • 该主机已安装 rsyslog;
  • 网络设备已配置为向该主机 IP 的 514 端口发送 syslog;
  • 该主机已安装 Wazuh agent。

最后一条是 5.0 的关键变化:Wazuh 5.0 中 agent 不会随 manager 一起安装。即使 rsyslog 就跑在 manager 所在主机上,也必须单独安装并注册一个 Wazuh agent。

安装 Wazuh agent

在 Wazuh dashboard 中进入Agent management -> Summary,点击Deploy new agent

填写所需信息后使用页面生成的命令安装 agent。如果 agent 与 manager 在同一台主机上运行,manager 地址填127.0.0.1。安装完成后启用并启动 agent 服务:

sudo systemctl daemon-reload sudo systemctl enable wazuh-agent sudo systemctl start wazuh-agent

agent 会在几秒内出现在 dashboard 的Agent management -> Summary页面,出现即说明注册成功。

Option A:rsyslog → journald → logcollector

rsyslog 收到 syslog 后用omjournal输出模块直接写入 systemd journal,Wazuh agent 默认就会读取 journal,agent 侧不需要任何额外配置。此方案要求采集主机是基于 systemd 的 Linux 系统。

1. 确认 rsyslog 已安装

omjournal模块在大多数发行版中随 rsyslog 主包提供,个别发行版需要单独安装:

# Debian/Ubuntu sudo apt install rsyslog # RHEL/CentOS/Amazon Linux sudo yum install rsyslog

2. 配置 rsyslog

创建/etc/rsyslog.d/99-wazuh-remote.conf,内容如下:

module(load="imudp") module(load="imtcp") module(load="omjournal") ruleset(name="remote_to_journal") { action(type="omjournal") } input(type="imudp" port="514" ruleset="remote_to_journal") input(type="imtcp" port="514" ruleset="remote_to_journal")

如果原来在 4.x 用<allowed-ips>限制了哪些主机可以发送 syslog,需要在防火墙层做等价限制(下面的网段是文档示例,替换为你实际允许的来源网段):

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="514" protocol="udp" accept' sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="514" protocol="tcp" accept' sudo firewall-cmd --reload

重启 rsyslog 生效:

sudo systemctl restart rsyslog

确认 rsyslog 已在 514 端口监听:

sudo ss -ulnp | grep 514 sudo ss -tlnp | grep 514

3. 验证 journal 接收

从任一台能访问采集主机的机器发送一条测试消息(<SYSLOG_HOST_IP>替换为 syslog 采集主机的 IP):

logger -n <SYSLOG_HOST_IP> -P 514 --udp "Test syslog message from migration"

在采集主机上用journalctl -f跟踪 journal,测试消息出现即说明 rsyslog → journal 这一跳打通。之后 Wazuh agent 会读取 journal,/var/ossec/etc/ossec.conf无需任何改动。

4. 在 dashboard 验证事件

进入 dashboard 的Explore -> Discover,来自远程设备的事件会以wazuh.protocol.location: journald标识出现:

两个使用限制需要注意:journald 的_HOSTNAME字段是受信字段,journald 总是把它设为本机主机名,包括 rsyslog 在内的任何应用都无法覆盖它;另外在 rsyslog 8.x 上,omjournal的自定义模板可能静默失效,不加模板时远端主机名不会出现在MESSAGE字段中。

Option B:rsyslog → 日志文件 → logcollector

rsyslog 把消息写入/var/log/remote/下按来源主机拆分的日志文件,Wazuh agent 通过<localfile>块监控这些文件。此方案适用于任意 Linux 主机(包括没有 systemd 的系统),并且每个来源设备有独立文件,便于人工排查。

1. 配置 rsyslog

创建/etc/rsyslog.d/99-wazuh-remote.conf

module(load="imudp") module(load="imtcp") template(name="RemoteHostLogs" type="string" string="/var/log/remote/%FROMHOST-IP%.log") ruleset(name="remote_to_file") { action(type="omfile" dynaFile="RemoteHostLogs") } input(type="imudp" port="514" ruleset="remote_to_file") input(type="imtcp" port="514" ruleset="remote_to_file")

模板中的%FROMHOST-IP%是 rsyslog 内置属性,按来源 IP 为每台设备生成独立日志文件。同样的<allowed-ips>等价防火墙规则可参照 Option A 第 2 步添加。

在启动 rsyslog 之前先创建目标目录。Debian/Ubuntu 上 rsyslog 会降权到普通用户syslog运行,无法自行在/var/log下创建目录,必须先由 root 建好并交给该用户;RHEL 系系统上 rsyslog 以root运行,会自动创建:

sudo install -d -o syslog -g adm /var/log/remote

然后重启并确认监听:

sudo systemctl restart rsyslog sudo ss -ulnp | grep 514 sudo ss -tlnp | grep 514

2. 配置 agent 监控日志文件

编辑采集主机上 agent 的配置文件/var/ossec/etc/ossec.conf,添加<localfile>块:

<ossec_config> <localfile> <location>/var/log/remote/*.log</location> <log_format>syslog</log_format> </localfile> </ossec_config>

这一条通配块覆盖 rsyslog 写入/var/log/remote/的所有文件,之后新增来源设备无需再改 agent 配置。

自定义模板必须带时间戳。Wazuh 内置的 syslog decoder 要求消息以 syslog 时间戳作为第一个字段才能匹配。上面的dynaFile写法使用 rsyslog 默认消息格式(含Jun 3 08:14:22这类时间戳),可以直接用;如果改用自定义模板,必须把%timereported:::date-rfc3164%放在开头。文档给出的正反示例(均为文档示例):

# 正确 —— 带时间戳,Wazuh syslog decoder 能匹配 template(name="MsgFmt" type="string" string="%timereported:::date-rfc3164% %HOSTNAME% %app-name%[%procid%]: %msg%\n") action(type="omfile" file="/var/log/remote/syslog.log" template="MsgFmt") # 错误 —— 无时间戳,事件落入 wazuh-events-v5-unclassified-* 索引且只有 event.original template(name="MsgFmt" type="string" string="%HOSTNAME% %app-name%[%procid%]: %msg%\n")

缺少时间戳的事件只会出现在wazuh-events-v5-unclassified-*索引中,仅有event.original字段、没有解码后的字段,排查时会很难定位原因,所以这条限制务必确认。

重启 agent 使配置生效:

sudo systemctl restart wazuh-agent

3. 验证 logcollector 正在读取文件

sudo grep "logcollector" /var/ossec/logs/ossec.log | grep "remote"

文档示例的期望输出:

2026/06/03 08:16:01 wazuh-logcollector: INFO: (1950): Analyzing file: '<log_file_configured>'.

说明 logcollector 已开始分析配置的日志文件。最后在 dashboard 的Explore -> Discover中按location: /var/log/remote/过滤,能看到远程设备事件即完成迁移:

关于来源 IP 的差异

4.x 中remoted直接收到设备连接,来源 IP 天然可用;5.x 中 agent 从本地文件或 journal 读取,原始来源 IP 只有在 rsyslog 记录下来时才保留:Option B 的dynaFile模板已把%FROMHOST-IP%放进文件路径,每设备一个文件;Option A 或自定义模板则可以通过%fromhost-ip%之类的模板属性写入消息体。如果现有规则依赖来源 IP 字段,迁移后需要按上述方式确认 IP 仍然可取。

完整对照与 4.x 侧示例配置(含 4.x 的<remote>块和local_rules.xml测试规则)见 docs/guide/migration/syslog-input-4x-to-5x.md 中的 Migration example 一节。

【免费下载链接】wazuhWazuh - The Open Source Security Platform. Unified XDR and SIEM protection for endpoints and cloud workloads.项目地址: https://gitcode.com/GitHub_Trending/wa/wazuh

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询