我的 access.log 是 10.5GB - 什么是好的日志管理程序?

我的 access.log 是 10.5GB - 什么是好的日志管理程序?

除了偶尔进入并清除日志外,我们没有任何日志管理。我们的服务器流量不大(大多数日志来自我们的实时聊天)。但这让我很疑惑,应该采用什么样的日志管理程序才能正确管理日志?您是否将其设置为仅记录特定内容,日志会在几天内被清除?访问日志应保留多长时间?其他日志应保留多长时间?

答案1

甚至我的日志文件也因此变得很大。我使用几乎所有 Linux 发行版都提供的标准 logrotate。

我已将其配置为每天对过大的内容进行日志轮转,其他内容每周进行日志轮转,依此类推。

试试看。我甚至用 xz 压缩了它们,因此文件相对较小,可以下载到您的个人电脑中进行仔细检查,而不会造成任何一方的带宽损失。

查看 man logrotate 和 man logrotate.conf 以了解更多信息。

答案2

首先要明白,你的网络服务器会将文件附加到你的 access.log 中,因此你确实应该将其大小保持在最小。当我的 Apache 服务器的日志文件超过 4 GB 时,它们的页面加载速度会变慢(我可能是唯一注意到这一点的人)。

试试 awstats。它会创建基于 html 的文件,让您可以很好地查看流量,它还会清除您拥有的庞大的 access.log 文件。第一次运行此应用程序时,由于 access.log 太大,因此需要很长时间。

如果 awstats 或 logrotate 对你不起作用,你可以每天用 cron 清除一次你的 access.log:

回显“”> access.log

但我个人只在日志文件很大,需要快速截断时才使用这个。这样截断日志真的很浪费。

答案3

使用纪年法创建每小时日志文件或每日日志文件。了解如何使用它。

TransferLog "|/usr/sbin/cronolog /web/logs/%Y/%m/%d/access.log"
ErrorLog    "|/usr/sbin/cronolog /web/logs/%Y/%m/%d/errors.log"

使用 cronjob 压缩上述日志以防止磁盘填满并保留数据几天(可能是一个月)。

或者使用 logrotate 来轮换日志(如上面的答案所述)

相关内容