RHEL 10 rsyslog 接收远程日志:imudp + 模板 + 落盘
This content is not available in your language yet.
集中日志的第一跳是“让 rsyslog 收 UDP 514 并落盘”。RHEL 10 的 rsyslog 8.2510 配置语法没变,但有两个细节会让新手卡住:模块加载路径、模板里标签与消息之间没有空格。
在 PVE 390 rhel10-lab(RHEL 10.2 x86_64)上实际执行:
rsyslogd -v | head -1systemctl is-active rsyslogls /usr/lib64/rsyslog/imudp.sosudo rsyslogd -N1sudo systemctl restart rsysloglogger -n 127.0.0.1 -P 514 -d -t rhel-test hello-remote-rsyslogsudo tail -1 /var/log/remote.logE3 记录:plans/content-expansion/evidence/rhel/rhel-rsyslog-receive/run.json(5 步,含配置校验/接收输出 sha256)。
配置:imudp + ruleset + omfile
Section titled “配置:imudp + ruleset + omfile”/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区分。
sudo rsyslogd -N1sudo systemctl restart rsysloglogger -n 127.0.0.1 -P 514 -d -t rhel-test hello-remote-rsyslogsleep 2sudo 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"再重启、重发即可。
校验不等于监听
Section titled “校验不等于监听”rsyslogd -N1只校验语法,退出 0 不代表 514 已监听;- 改完配置必须
systemctl restart rsyslog; - 用
ss -lunp | grep 514确认端口; - 用
logger -n ...或nc -u发一条测试消息,确认落盘; - 生产上还要在 firewalld 放行 514/udp(本实验 firewalld 已停用)。
sudo rm -f /etc/rsyslog.d/50-remote.confsudo systemctl restart rsyslogsudo rm -f /var/log/remote.log-
imudp.so路径正确、模块能 load; -
input绑定独立 ruleset; - 模板标签与消息之间有空格;
-
rsyslogd -N1通过后 restart; -
ss -lunp确认 514 监听; -
logger -n实发一条并落盘; - firewalld/上游安全组放行 UDP 514。
未实测与边界
Section titled “未实测与边界”- 未测试 TCP 514(imtcp)与 TLS(rsyslog-gnutls);
- 未测试远程主机真实转发(只用本机 logger 模拟);
- 未测试 disk-assisted queue 与断线缓存;
- 未测试 logrotate 对
/var/log/remote.log的切割。
- firewalld 规则不生效:nftables 后端排查 — 放行 514/udp
- RHEL 10 文件完整性:AIDE 基线与检查 — 日志完整性
- 官方:Configuring basic system settings