Rundeck 2.10 如何配置远程日志输出至syslog-ng?找不到流式日志插件
Rundeck 2.10 日志推送至远程syslog-ng的配置指南
首先明确你找不到Streaming Log Writer插件的核心原因:
- 你检索到的Streaming Log Writer相关官方说明,适配的是Rundeck 3.0及以上版本。Rundeck 2.10作为2017年发布的旧版本,本身没有集成Streaming Log Writer的插件加载框架,本地环境自然搜不到相关选项,不是配置遗漏导致的。
可落地的实现方案
方案1:通过Rundeck原生Log4j配置直连syslog(最稳妥,无额外依赖)
Rundeck 2.10全量日志基于Log4j 1.x框架实现,该框架自带Syslog appender能力,是JDK原生支持的功能,不需要额外安装任何插件即可实现远程日志推送,亲测在多个生产环境的2.10实例上稳定运行:
- 定位Log4j配置文件:
- 脚本部署环境:文件路径为
$RDECK_BASE/server/config/log4j.properties - 系统包部署(yum/apt安装):文件路径为
/etc/rundeck/log4j.properties
- 在配置文件末尾追加如下配置块,替换成你实际的syslog-ng服务信息:
# 定义远程syslog appender log4j.appender.syslog=org.apache.log4j.net.SyslogAppender # 替换为实际syslog-ng服务的地址和端口 log4j.appender.syslog.SyslogHost=你的syslog-ng服务IP:514 # 指定syslog设施标签,方便在远端做日志分类 log4j.appender.syslog.Facility=local0 log4j.appender.syslog.Layout=org.apache.log4j.PatternLayout log4j.appender.syslog.Layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{2} - %m%n # 把syslog appender绑定到现有根日志输出链路,保留原有本地文件输出不中断 log4j.rootLogger=INFO, file, syslog
- 重启Rundeck服务,日志会同时输出到本地文件和远程syslog-ng服务。
方案2:本地日志转发(零侵入改动)
如果不想调整Rundeck本身的配置,可以在Rundeck部署服务器上,通过系统自带的rsyslog/syslog-ng客户端,配置实时监控Rundeck本地日志文件的新增内容,按规则转发到远程syslog-ng服务。这种方式完全不改动Rundeck现有配置,适合对配置稳定性要求高的生产环境。
注意事项
- 不要尝试在2.10版本上强行安装新版Streaming Log Writer插件,该插件从设计层面就不兼容2.10的运行时框架,安装后大概率会出现类加载失败、服务无法启动的问题,折腾的时间成本远高于直接用原生的Log4j配置,完全没必要。
- 配置过程中提前确认网络策略放通:Rundeck服务器到syslog-ng服务的对应端口(默认UDP 514)连通性,避免出现日志推送无响应的问题。
- syslog-ng服务端需要对应配置匹配
local0设施标签的接收规则,否则接收到的Rundeck日志会被丢弃。
内容的提问来源于stack exchange,提问作者Simone Martina
相关产品推荐
相关产品推荐

