一段时间后如何从日志文件中删除 IP 地址

Mic*_*ert 7 nginx logging web-server privacy apache2

我有一个 apache/nginx/whatever Web 服务器,它将客户端 IP 地址记录到访问日志中。现在这些日志文件通过logrotate.

我想将 IP 地址保留几天,然后在 7 天后,出于隐私原因(主要由德国法律规定),我想从日志文件中删除 IP。

使用mod_removeip或类似的东西不起作用,因为我需要根据他们的 IP 地址过滤一些请求。

有什么“标准”的方法可以做到吗?也许甚至与logrotate

编辑

我刚刚找到了这个脚本,但这取决于通过脚本实时管理所有日志记录的能力。我不太确定这种方法对性能的影响。

此外,这仅适用于“前端”服务器日志,而不适用于应用程序服务器日志。

Bar*_*rim 0

我不认为 logrotate 会做到这一点;您可能需要创建一个脚本来解压缩文件,通过 awk 或 sed 处理它们以剥离 IP,然后重新压缩它们。只是无法在“活动”日志文件上执行此操作。

  • 我相信 logrotate 有 pre/post hooks,您可以使用它们来启动您提到的脚本,然后 OP 不需要管理单独的进程。 (3认同)
  • 也许你可以使用 logroate 的“postrotate”来实现这一点。 (3认同)