rsyslog配置问题:指定标签的日志未写入目标文件
排查步骤与修复方案
文件名配置不匹配
你需要日志写入/var/log/xen-shutdown-script.log,但当前配置里指定的是/var/log/xen-pool-shutdown.log,这是直接的路径错误,先把配置中的文件路径修正为目标路径。模板变量拼写错误
模板里的%syslogprioriy-text%存在拼写错误,正确变量名是%syslogpriority-text%(少了字母r)。变量拼写错误会导致模板解析失败,进而阻止日志写入。修正后的模板代码:template(name="xenShutdownScriptFormat" type="string" string="<%syslogpriority-text%>%TIMESTAMP:::date-rfc3339% %HOSTNAME% %msg%\n")syslogtag匹配逻辑优化
使用logger -t xen-shutdown-script生成的日志中,$syslogtag字段实际会自带冒号(格式为xen-shutdown-script:)。虽然当前的contains匹配能命中,但更严谨的写法是用startswith避免误匹配:if $syslogtag startswith "xen-shutdown-script:" then /var/log/xen-shutdown-script.log;xenShutdownScriptFormat验证配置并重启服务
修改配置后先检查语法是否合法:rsyslogd -N1确认无报错后,重启rsyslog让配置生效:
systemctl restart rsyslog检查日志文件权限
确保rsyslog进程有权写入目标文件:- 若文件未创建,rsyslog会自动生成,但需保证
/var/log/目录对syslog用户/组有写入权限。 - 若文件已存在,执行以下命令修复权限:
chown syslog:adm /var/log/xen-shutdown-script.log chmod 640 /var/log/xen-shutdown-script.log
- 若文件未创建,rsyslog会自动生成,但需保证
测试日志写入
执行测试命令后查看目标日志:logger -t xen-shutdown-script -p syslog.info "test message" cat /var/log/xen-shutdown-script.log若仍无内容,可查看rsyslog自身日志(
/var/log/syslog或/var/log/messages),排查是否有配置解析或文件写入的错误提示。
内容的提问来源于stack exchange,提问作者EricR
相关产品推荐
相关产品推荐

