我正在尝试设置一个 rsyslog 客户端(运行 rsyslog 7.4.8),它将通过两个不同的 SSL 配置记录到两个远程服务器。为此,我似乎需要从旧配置文件格式迁移到新的基于操作的格式。
如果我在 /etc/rsyslog.conf 中有以下内容,则一切正常。远程服务器接收消息,netstat 显示从客户端到远程服务器已建立 TCP 连接:
$ModLoad imuxsock.so
$ModLoad imklog.so
$DefaultNetstreamDriver gtls
$ActionSendStreamDriverAuthMode anon
$ActionSendStreamDriverMode 1
$DefaultNetstreamDriverCAFile /etc/pki/rsyslog/ca.pem
$DefaultNetstreamDriverCertFile /etc/pki/rsyslog/local-cert.pem
$DefaultNetstreamDriverKeyFile /etc/pki/rsyslog/local-key.pem
*.* @@10.50.59.241:6514
根据我从 rsyslog 文档中收集到的信息,我应该能够执行以下操作:
$ModLoad imuxsock.so
$ModLoad imklog.so
$DefaultNetstreamDriverCAFile /etc/pki/rsyslog/ca.pem
$DefaultNetstreamDriverCertFile /etc/pki/rsyslog/local-cert.pem
$DefaultNetstreamDriverKeyFile /etc/pki/rsyslog/local-key.pem
*.* action (type="omfwd" protocol="tcp" Target="10.50.59.241" Port="6514" StreamDriverMode="1" StreamDriver="gtls" StreamDriverAuthMode="anon")
但是第二个配置不起作用。rsyslogd 成功重启,所以我知道这个配置没有语法错误。但是 netstat 从未显示任何尝试连接到远程 syslog 服务器的迹象。我遗漏了什么?
答案1
经过一番思考,我终于自己解决了这个问题。首先,rsyslog 的某些版本中有一个错误,会阻止此功能工作(您永远不会看到与一个或多个目标服务器建立的连接),因此请确保您使用的是 rsyslog 7.6 或更高版本。
确保您的 CA 文件包含其中列出的所有目标所需的 CA。顺序并不重要。然后您的 conf 文件应如下所示:
$DefaultNetstreamDriverCAFile /etc/pki/rsyslog/ca.pem
*.* action(type="omfwd" protocol="tcp" Target="10.50.59.241" Port="6514" StreamDriverMode="1" StreamDriver="gtls" StreamDriverAuthMode="anon")
*.* action(type="omfwd" Protocol="tcp" Target="some.other.host.com" Port="6514" StreamDriverMode="1" StreamDriver="gtls" StreamDriverAuthMode="x509/name" StreamDriverPermittedPeers="*.some.other.host.com")