使用 rsyslog 进行远程日志记录 - 无法加载模块 lmnsd_gtls.so

使用 rsyslog 进行远程日志记录 - 无法加载模块 lmnsd_gtls.so

我有 2 台服务器和一台办公室 NAS,我希望这两台服务器都将其日志转储到 NAS 上。只有 1 台服务器成功登录到 NAS。另一台服务器继续在 /var/log/messages 中生成此错误消息:

May 16 09:01:01 elmer rsyslogd-2068: could not load module '/usr/lib64/rsyslog/lmnsd_gtls.so', rsyslog error -2078
 [try http://www.rsyslog.com/e/2068 ]

两台服务器都运行 CentOS 7 (4.0.2-x86_64),并且两台服务器都安装了 rsyslog-gnutls,但有一处小例外(见下文):

Installed Packages
Name        : rsyslog-gnutls
Arch        : x86_64
Version     : 7.4.7
Release     : 7.el7_0
Size        : 33 k
Repo        : installed
From repo   : updates
Summary     : TLS protocol support for rsyslog
URL         : http://www.rsyslog.com/
License     : (GPLv3+ and ASL 2.0)
Description : The rsyslog-gnutls package contains the rsyslog plugins that provide the ability to receive syslog messages via upcoming syslog-transport-tls IETF standard protocol.

请注意,我确实注意到了“From Repo”行中的差异...对于成功登录到 NAS 的服务器,“来自 Repo”行显示“ updates”,而对于发出此错误消息的服务器,“来自 Repo”行显示“ base”。

两台服务器具有完全相同的 rsyslog.conf 配置:

$DefaultNetstreamDriverCAFile /etc/ssl/logging-cert.crt
$DefaultNetstreamDriver gtls # use gtls netstream driver
$ActionSendStreamDriverMode 1 # require TLS for the connection
$ActionSendStreamDriverAuthMode anon # server is NOT authenticated
*.* @@my-remote-NAS.com:51415

两台服务器都有完全相同的 /etc/ssl/logging-cert.crt 文件,并且该文件在两台服务器上具有相同的权限。

Google 上的大多数搜索结果都建议确保已安装 rsyslog-gnutls,事实也确实如此。我快抓狂了。救命!

答案1

正如本文所建议的邮件主题,这可能是由 gnutls 的证书错误引起的(这反过来会阻止模块加载)。我遇到了类似的问题,并且能够通过提供正确的证书来解决它。由于您的一个服务器正在运行,而另一个服务器没有运行,请检查您通过以下方式提供的证书

$DefaultNetstreamDriverCAFile /etc/ssl/logging-cert.crt

是相同的。获取正确的证书应该可以解决问题。

相关内容