我如何存储日志并满足免费的合规要求?

我试图以这种方式保存应用程序的长期日志,以便能够合理地向第三方/法庭certificate应用程序在给定的时间处理了某些数据。 数据可以用XML或文本格式表示。 一个简单的gzip日志是不合理的,因为我可能后来添加或修改了数据,而外部日志logging服务将是一个矫枉过正的。 成本是一个问题,我们不是处理财务数据等,而是一些简单的用户生成的内容,有些恶意用户在事情升级并上法庭时试图责怪运营商。

我的问题:

  1. 是否有某种Linux签名软件以这种方式对日志中的每个元素进行签名,以便可以很容易地看出,之后没有元素可以被添加或修改? 插入一些免费的Splunk替代品也可以。

  2. 理想情况下,我正在寻找的软件应该是GPL或类似的许可证。 我可能通过使用PGP / GPG调整函数并包含以下元素签名在以下元素中实现类似的function,但是我宁愿使用一些程序,您不必为自己的代码的有效性争论不休。

注意mods:我不是在Stackoverflow上问这个问题,因为我不是因为上面描述的原因而想要编写自己的代码。 我认为这个问题比超级用户更适合服务器故障,因为服务器端日志logging软件在这里被讨论,而不是超级用户。

考虑受信任的时间戳 。 使用opensslts签名日志文件散列可能就足够了。

我会build议你看一下Amazon Glacier 。 它是每月1美分,你想要存储每GB。 所以除非你的日志很大,否则不应该有一个巨大的成本问题。

我告诉你的主要原因是,从他们的FAQ :

问:我能看到我在Amazon Glacier中存储了哪些档案吗? 是。 尽pipe您需要维护自己上传到Amazon Glacier的数据索引,但为了进行灾难恢复或偶尔进行对账,每个保pipe库中的所有归档都将保留一份清单。 库库存每天大约更新一次。 您可以将库存作为JSON或CSV文件请求, 并将包含有关存储库中存档的详细信息,包括大小,创builddate和存档描述 (如果您在上传期间提供的)。 清单将代表最近清单更新时的保pipe库状态。

主要的想法是,有亚马逊loggingforms的证据表明,当你说你做了,你上传了logging,并从那时起就保存了。

(强调我的)。