rsyslog配置UDP发送Syslog消息失败问题求助
rsyslog无法转发日志排查
你的配置存在两处核心错误,直接导致转发逻辑不生效:
- 动作模块名拼写错误:rsyslog 转发类输出动作的正确模块名为
omfwd(output module forward 缩写),配置中写的ofwd是不存在的无效模块名,rsyslog 无法加载对应转发模块,自然不会执行任何发送操作。 - 自定义模板未关联到转发动作:你提前定义了
myTemplate日志格式模板,但转发动作配置中没有指定调用该模板,即使模块名修正,转发的日志也会走默认格式,不会按你预设的结构输出。
另外你写的模板内容本身存在缺失:模板字符串仅包含时间、主机名、日志设施、日志级别字段,没有实际日志内容字段%msg%,也没有行尾换行符\n,就算正确引用,接收端收到的内容也不完整,且容易出现日志粘连问题。
修正后的可用配置
template(name="myTemplate" type="string" string="%timegenerated% %HOSTNAME% %syslogfacility-text%.%syslogseverity-text% %msg%\n" ) local7.* { action( type="omfwd" target="192.168.1.10" port="514" protocol="udp" template="myTemplate" ) }
生效&排障步骤
- 替换配置后先执行语法校验,确认无配置错误:
rsyslogd -N1 - 校验通过后重启rsyslog服务加载新配置:
systemctl restart rsyslog - 本地模拟发送一条测试日志验证转发:
logger -p local7.info "rsyslog forward test message" - 如果远端仍收不到日志,依次检查:
- 本地服务器出站防火墙是否放通UDP 514端口访问
- 远端192.168.1.10服务器入站防火墙是否放通UDP 514端口
- 远端rsyslog服务是否已开启UDP 514端口监听
内容的提问来源于stack exchange,提问作者elo_santa
相关产品推荐
相关产品推荐

