httpd ldap和文件validation错误

我们有SVN通过Apache httpd运行。 对于身份validation,我们使用Active Directory,如果用户不在AD中,我们将回退到文件身份validation。 这工作正常,除了在文件身份validation的情况下的错误信息。 我们一遍又一遍的错误信息:

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

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

很抱歉回答我自己的问题,但是我已经实施了一个解决scheme,我想与你分享,因为你帮助我,这对别人可能是有价值的。

基本上它很简单,我根本没有改变日志logging,我只是将日志轮换(/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 } 

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

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

  1. ErrorLog发送到syslog,并根据inputlogin到不同的文件。
  2. 使用pipe道语法将日志发送到专用帮助程序,然后使用它将身份validation失败分解为单独的文件。 build议在生产中使用专用的二进制文件(不是shell脚本),因为它是性能敏感的。

closuresLogLevel详细信息可能是一个坏主意,因为它会影响VirtualHost中的其他消息。 和LDAPLibraryDebug一样 ,我认为这些消息来自Apache而不是LDAP库。

您可以根本禁用错误日志消息。 就像是

ErrorLog / dev / null