跳转到内容
搜索 RHEL 文档

    浏览当前文档目录

    RHEL 10 rsyslog 接收远程日志:imudp + 模板 + 落盘

    集中日志的第一跳是“让 rsyslog 收 UDP 514 并落盘”。RHEL 10 的 rsyslog 8.2510 配置语法没变,但有两个细节会让新手卡住:模块加载路径、模板里标签与消息之间没有空格。

    在 PVE 390 rhel10-lab(RHEL 10.2 x86_64)上实际执行:

    Terminal window
    rsyslogd -v | head -1
    systemctl is-active rsyslog
    ls /usr/lib64/rsyslog/imudp.so
    sudo rsyslogd -N1
    sudo systemctl restart rsyslog
    logger -n 127.0.0.1 -P 514 -d -t rhel-test hello-remote-rsyslog
    sudo tail -1 /var/log/remote.log

    E3 记录:plans/content-expansion/evidence/rhel/rhel-rsyslog-receive/run.json(5 步,含配置校验/接收输出 sha256)。

    /etc/rsyslog.d/50-remote.conf:

    module(load="/usr/lib64/rsyslog/imudp.so")
    input(type="imudp" port="514" ruleset="remote")
    template(name="RemoteFmt" type="string" string="%timegenerated% %HOSTNAME% %syslogtag% %msg%\n")
    ruleset(name="remote") {
    action(type="omfile" file="/var/log/remote.log" template="RemoteFmt")
    }

    要点:

    • imudp 用完整路径加载,避免模块搜索路径差异;
    • input 绑定 ruleset="remote",只让远程消息走这个 ruleset,避免和本地规则互相干扰;
    • template 里 %syslogtag% 与 %msg% 之间要有空格,否则输出会粘在一起;
    • omfile 指定独立文件,方便和 /var/log/messages 区分。
    Terminal window
    sudo rsyslogd -N1
    sudo systemctl restart rsyslog
    logger -n 127.0.0.1 -P 514 -d -t rhel-test hello-remote-rsyslog
    sleep 2
    sudo tail -1 /var/log/remote.log

    实测输出:

    Nov 4 14:42:17 rhel10-lab rhel-testhello-remote-rsyslog

    看到 rhel-testhello-remote-rsyslog 粘在一起,就是模板少了空格。把模板改成:

    string="%timegenerated% %HOSTNAME% %syslogtag% %msg%\n"

    再重启、重发即可。

    • rsyslogd -N1 只校验语法,退出 0 不代表 514 已监听;
    • 改完配置必须 systemctl restart rsyslog;
    • 用 ss -lunp | grep 514 确认端口;
    • 用 logger -n ... 或 nc -u 发一条测试消息,确认落盘;
    • 生产上还要在 firewalld 放行 514/udp(本实验 firewalld 已停用)。
    Terminal window
    sudo rm -f /etc/rsyslog.d/50-remote.conf
    sudo systemctl restart rsyslog
    sudo rm -f /var/log/remote.log
    • imudp.so 路径正确、模块能 load;
    • input 绑定独立 ruleset;
    • 模板标签与消息之间有空格;
    • rsyslogd -N1 通过后 restart;
    • ss -lunp 确认 514 监听;
    • logger -n 实发一条并落盘;
    • firewalld/上游安全组放行 UDP 514。
    • 未测试 TCP 514(imtcp)与 TLS(rsyslog-gnutls);
    • 未测试远程主机真实转发(只用本机 logger 模拟);
    • 未测试 disk-assisted queue 与断线缓存;
    • 未测试 logrotate 对 /var/log/remote.log 的切割。