You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rsyslog 8.24的RainerScript控制结构失效问题求助

解决rsyslog 8.24分离xCAT日志为空的问题

问题排查与修复步骤:

  1. 验证配置语法
    先检查rsyslog配置是否存在语法错误,执行:

    rsyslogd -N1
    

    若输出有错误提示,根据提示修正配置。

  2. 检查日志目录/文件权限
    确保rsyslog进程有读写目标日志目录的权限:

    # 若目录不存在则创建
    mkdir -p /var/log/xcat
    # 设置正确权限(rsyslog通常以syslog用户运行)
    chown syslog:adm /var/log/xcat
    chmod 750 /var/log/xcat
    

    如果日志文件已存在,也要确保权限正确:

    chown syslog:adm /var/log/xcat/nagios.log /var/log/xcat/cluster.log
    
  3. 调整配置文件加载顺序
    rsyslog会按字母顺序加载/etc/rsyslog.d/下的配置文件,若你的配置被其他规则抢先处理并终止,会导致日志无法写入目标文件。将配置文件重命名为00-xcat.conf(确保它最先被加载),避免被后续规则拦截。

  4. 修正条件匹配逻辑
    部分场景下$programname的匹配可能不准确(比如xCAT日志的syslogtag带冒号),改用$syslogtag匹配,并调整条件结构:

    template(name="xCATTraditionalFormat0" type="string" string="%timegenerated% %HOSTNAME% %syslogtag% %syslogseverity-text:::uppercase% %msg:::drop-last-lf%\n")
    
    # 分离含"nagios"的xCAT日志
    if ($syslogtag startswith "xcat") then {
        if ($msg contains "nagios") then {
            action(type="omfile" file="/var/log/xcat/nagios.log" template="xCATTraditionalFormat0")
        } else {
            action(type="omfile" file="/var/log/xcat/cluster.log" template="xCATTraditionalFormat0")
        }
        stop
    }
    
  5. 启用调试模式排查细节
    临时启动rsyslog调试模式,查看日志处理过程:

    systemctl stop rsyslog
    rsyslogd -d
    

    观察输出中是否有匹配xCAT日志的记录,以及是否存在权限拒绝、条件不匹配等错误信息。

生效配置

修改配置后,重启rsyslog服务:

systemctl restart rsyslog

内容的提问来源于stack exchange,提问作者Marek Štekláč

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 15:52:34