解决Apache的错误日志巨大的问题以及关闭Apache web日志记录
调整错误日志的级别
这几天 apache错误日志巨大 莫名其妙的30G 而且 很多都是那种页面不存在的 网站太多了 死链接相应的也很多
于是把错误警告调低了
因为写日志会给系统带来很大的损耗。关闭日志以后,甚至最高可以提高整体性能近40%(粗略估计)那么如何关闭日志呢?
可以通过降低log级别的办法来减少日志读写。
这里要提醒的是,这么做将给“入侵检测”以及其他基于日志分析的工作带来麻烦。所以请谨慎使用。
网上相关文章很多,但说的都不详细,擦边而过,下面详细说一下具体操作步骤。
编辑conf文件夹下的httpd.conf,找到如下内容:
=====================
#
# LogLevel: Control the number of messages logged to the error_log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
#
LogLevel warn
=====================
其中,LogLevel用于调整记于错误日志中的信息的详细程度。(参阅ErrorLog指令)。可以选择下列级别,依照重要性降序排列:
Level Description Example
emerg 紧急 – 系统无法使用。 “Child cannot open lock file. Exiting”
alert 必须立即采取措施。 “getpwuid: couldn’t determine user name from uid”
crit 致命情况。 “socket: Failed to get a socket, exiting child”
error 错误情况。 “remature end of script headers”
warn 警告情况。 “child process 1234 did not exit, sending another SIGHUP”
notice 一般重要情况。 “httpd: caught SIGBUS, attempting to dump core in …”
info 普通信息。 “Server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers)…”
debug 出错级别信息 “Opening config file …”
默认级别是warn,那么warn级别以上的日志都会记录,会产生大量“文件不存在”的erro级别的错误日志。建议使用 crit 级别的设置,这样只记录致命级别以上的日志,有效减少日志数量。
把LogLevel warn更改为LogLevel crit 然后重启apache即可。
将Httpd.conf 配置文件中的ErrorLog 参数改为下面的,就可以将日志按每天生成一个日志文件.
ErrorLog “|bin/rotatelogs.exe -l logs/error-%Y-%m-%d.log 1M”
ErrorLog “|bin/rotatelogs.exe -l logs/error-%Y-%m-%d.log 86400″
以上是关闭apache错误日志的办法!!!
关闭 WEB日志的方法
在httpd.conf文件中,有如下一行,你删除了就不产生日志了。我是注释的方式,如:
1
|
#CustomLog "logs/access_log" common |
这一行可能因你的配置不同有所修改,不一定完全相同。搜索一下就能定位到。方法就这么简单吧。最后记得要重启web服务(不用重启服务器)才有效。
描述
服务器错误日志非常宝贵,因为它们可用于发现潜在问题 在他们变得认真之前。 最重要的是,它们可以用来监视异常 行为,例如许多“未找到”或“未经授权”的错误,可能表明 攻击即将发生或已经发生。
检查提示
--
加固建议
1.使用vim编辑器对配置文件进行编辑 vim path
(path为主配置文件的绝对路径,如果您的主配置文件中包含
include <path>,则<path>为您的子配置文件路径) 2.找到
LogLevel 将其设置为
LogLevel notice 3.找到
ErrorLog 将其设置为
ErrorLog "logs/error_log"` 如没有,请增加
操作时建议做好记录或备份