我正在尝试通过 TLS 将所有系统日志消息从我们的环境转发到外部系统日志服务器(目标.syslog.example.com) 使用 rsyslog。不幸的是,源 IP 已更改为中继主机的 IP(fwd.syslog.example.com)。我希望它在遵守格式的情况下,发送原始源IP而不是中继主机的IP RSYSLOG_SyslogProtocol23Format
。
当前 rsyslog 配置与通过 TLS 转发 syslog 消息相关:
$DefaultNetstreamDriverCAFile /etc/pki/tls/private/ca.crt
# Run driver in TLS mode
$DefaultNetstreamDriver gtls
$ActionSendStreamDriverMode 1
$ActionSendStreamDriverAuthMode x509/name
$ActionSendStreamDriverPermittedPeer dest.syslog.example.com
$LocalHostName fwd.syslog.example.com
# Forward logging
*.* @@(o)dest.syslog.example.com:6514;RSYSLOG_SyslogProtocol23Format
是否可以修改fromhost-ip
为原始源IP?
答案1
我不确定这是否足够,但内置模板RSYSLOG_SyslogProtocol23Format
定义为
"<%PRI%>1 %TIMESTAMP:::date-rfc3339% %HOSTNAME% %APP-NAME%
%PROCID% %MSGID% %STRUCTURED-DATA% %msg%\n"
你也可以HOSTNAME
用fromhost
或替换fromhost-ip
:
template(name="myFormat" type="string"
string="<%PRI%>1 %TIMESTAMP:::date-rfc3339% %fromhost% %APP-NAME% %PROCID% %MSGID% %STRUCTURED-DATA% %msg%\n")
*.* @@(o)dest.syslog.example.com:6514;myFormat