httpd ldap 和文件认证错误

httpd ldap 和文件认证错误

我们通过 Apache httpd 运行 SVN。对于身份验证,我们使用 Active Directory,如果用户不在 AD 中,我们将回退到文件身份验证。除了文件身份验证时的错误消息外,此方法运行良好。我们一次又一次收到错误消息:

auth_ldap authenticate: user <user> authentication failed; URI /svn/some/uri [User not found][No such object]

我们希望过滤掉这些消息,因为我们的日志文件由于这些不必要的日志消息而迅速增长。

答案1

很抱歉回答我自己的问题,但我已经实施了一个解决方案,我想与您分享,因为您帮助了我,而且它可能对其他人有价值。

基本上它相当简单,我根本没有改变日志记录,我只是将日志轮换(/etc/logrotate.d/httpd)更改为:

/var/log/httpd/*log {
        compress
        compresscmd /usr/bin/bzip2
        compressext .bz2
        daily
        dateext
        maxage 31
        rotate 14
        size=+4096k
        notifempty
        missingok
        sharedscripts
        prerotate
                /bin/sed -i '/User not found/d' /var/log/httpd/*svn_error_log
        endscript
        postrotate
                /sbin/service httpd graceful > /dev/null 2>/dev/null || true
        endscript
}

这样,所有误报都会每天从日志文件中删除。日志文件的大小会减小,并且不会随着时间的推移而增大,因为文件会在 31 天后(最多)被删除。

答案2

假设目的是过滤这些日志不同的文件,有几种方法可以解决此问题。

  1. 发送ErrorLog系统日志并根据输入记录到不同的文件。
  2. 使用管道语法将日志发送到专用的辅助程序,并使用它将身份验证失败拆分到单独的文件中。建议在生产中将专用二进制文件与此指令结合使用(而不是 shell 脚本),因为它对性能很敏感。

调低日志级别详细程度这可能是一个坏主意,因为它会影响 VirtualHost 内的其他消息。LDAP库调试,而且我认为这些消息来自 Apache 而不是 LDAP 库。

答案3

你可以完全禁用错误日志消息。例如

错误日志 /dev/null

相关内容