服务器远程管理卡通过Syslog协议将日志发送至rsyslog服务端,需在管理卡端配置目标地址与协议,并在服务端启用imtcp模块、用$fromhost-ip模板按IP分离落盘,关键注意&~终止默认写入及防火墙/TCP可靠性。

服务器远程管理卡(如iDRAC、iLO、IPMI)本身不运行Linux或rsyslog,但普遍支持将自身日志通过标准Syslog协议(UDP/TCP)主动发送到指定远程日志服务器。配置核心是两步:在管理卡Web界面中设置Syslog目标地址,同时确保后端rsyslog服务端已正确监听并路由该来源。
管理卡侧:填写Syslog服务器地址与协议
登录管理卡Web控制台(例如iDRAC的https://
- iDRAC(Dell):System → Logs → Syslog → Enable + 填写 Server IP、Port(默认514)、Protocol(建议选TCP)
- iLO(HPE):Administration → Management Processor Settings → Syslog Settings → Enable + 指定 Syslog Server Address 和 Port
- IPMI(通用):Configuration → Network → Syslog Configuration → 启用并输入Remote Syslog Server IP/Port
注意:部分老型号仅支持UDP;若网络存在丢包或跨防火墙,务必选择TCP并确认服务端已启用imtcp模块。
rsyslog服务端:接收并按来源分离日志
管理卡日志没有hostname或programname字段,$fromhost-ip是唯一可靠标识。需在服务端配置中显式提取IP并分类落盘:
- 加载模块(/etc/rsyslog.conf 或 /etc/rsyslog.d/50-drac.conf):
module(load="imtcp") input(type="imtcp" port="514") - 定义模板(按IP和日期自动建目录):
$template RemoteMgmt,"/var/log/mgmt/%FROMHOST-IP%/%$YEAR%-%$MONTH%-%$DAY%.log" - 匹配规则(只收来自管理网段的TCP日志,避免混入其他设备):
if $inputname == 'imtcp' and $fromhost-ip startswith '192.168.10.' then ?RemoteMgmt &~
关键点:&~必须紧跟模板调用,否则日志会重复写入默认/var/log/messages;$fromhost-ip比%HOSTNAME%更可靠,因管理卡通常不发hostname字段。
验证与排错要点
配置后常见问题不是“没生效”,而是“日志来了但找不到”:
- 用 tcpdump -i any port 514 and host 确认数据包是否发出并到达服务端
- 检查 ss -tlnp | grep :514 是否有rsyslog进程监听TCP 514端口
- 执行 rsyslogd -N1 校验配置语法,避免模板名大小写错误或漏&~
- 查看 journalctl -u rsyslog -n 50 -f 实时捕获rsyslog自身报错(如权限拒绝、目录不可写)
管理卡日志格式固定、字段有限,不支持自定义模板或facility重映射,只需确保传输可达、落盘路径清晰即可。不复杂但容易忽略&~和$fromhost-ip这两个关键细节。










