如何自动删除日志中的冗余内容

如何自动删除日志中的冗余内容

我正在检查具有多个虚拟主机/帐户的服务器上的日志,试图找出要删除哪些,因为现在已经月底了,并且自动备份失败了(我使用 Apache 和/或 Nginx)。

我意识到那里的很大一部分内容对我来说毫无意义。我的意思是,我可能应该记录它,因为它不工作,这将是问题的征兆,但回想起来,记录 cPanel 发起的请求的条目/.well-known/acme-challenge/...或我使用的每 5 分钟检查一次的“正常运行时间监控”服务的条目对我来说毫无用处。

我假设设置在一天结束时cron运行的任务sed或其他东西可以处理这个问题,但我不想编辑活动日志,并且除活动日志之外的所有日志都存储在 gzip 压缩档案中.gz

我从来没有手动设置过一项cron工作,但它看起来很简单,但处理压缩档案是我不知道如何处理的事情。

Sed 是一个“流编辑器”,我是否可以使用它在日志被压缩之前对其进行过滤...也许就在它不再是活动日志但在被归档之前?

关于如何做到这一点的建议,或者现有的软件可以做到这一点?

我还发现每个日志都有多个,这很令人恼火...看起来每个 vhost 都有 3 个访问日志、1 个标准日志、1 个 SSL 日志和 1 个字节(?) 日志,因此即使合并它们也会有所改进。

我应该注意,我正在实施,Fail2Ban这样应该会稍微减少日志的数量,但我不想将日志级别调得太低。

一点帮助?

答案1

日志文件保留是轮换和清除脚本的工作,调用logrotate或命令。这些旨在自动防止日志tmpwatch文件find存储填满,除非容量大幅增加。通常这里没有太多处理,以保持清除脚本简单。但您可以在压缩日志时删除一些行。

如果存在永远不应记录的 URI,则可以将 Web 服务器设置为永远不记录它们。 httpd 示例。

有时搜索引擎有助于使日志行数对人类有用且易于管理。考虑将日志转发到 Graylog 或 Logstash 等文本管道。然后从噪音中提取信号。例如,搜索非 200 HTTP 响应。或者,如果健康检查 URI 是不是过去 10 分钟内访问过。

相关内容