我有一个 Foreman 1.9.0 系统,在 RHEL 7.2 上使用 postgres 作为后端。
提出了能够近乎实时(5-10 分钟标记)将审计日志和报告发送给外部实体的要求。
我一直在网上寻找,但无法确定这是否可能。我可以创建一个脚本,直接从数据库中读取日志并将它们输出到 xml。但从问责制的角度来看,这并不理想。
理想的输出解决方案是 XML,但 syslog 消息格式就足够了。
谢谢
我有一个 Foreman 1.9.0 系统,在 RHEL 7.2 上使用 postgres 作为后端。
提出了能够近乎实时(5-10 分钟标记)将审计日志和报告发送给外部实体的要求。
我一直在网上寻找,但无法确定这是否可能。我可以创建一个脚本,直接从数据库中读取日志并将它们输出到 xml。但从问责制的角度来看,这并不理想。
理想的输出解决方案是 XML,但 syslog 消息格式就足够了。
谢谢
我认为有如此严格的要求,您应该创建一个 Foreman 插件。请参阅https://theforeman.org/plugins/#3.WritingYourOwn寻求帮助或在邮件列表和 IRC 频道中询问。
Foreman 使用 gem 'audited' ( https://github.com/collectiveidea/audited ) 来捕获对所有对象所做的更改。此 gem 将审核存储在名为“Audit”的对象中。您可以在 Foreman 插件中扩展此对象,并编写一个
after_save
调用,将其自身的 XML 表示发送到您的外部服务器。这样您的审核将自动发送,但是您应该小心并使操作异步并捕获错误,以防与外部服务器的连接不起作用等...或者(并且更基本且容易出错)您可以编写一个 rake 任务(参见此处的示例https://github.com/theforeman/foreman/tree/develop/lib/tasks),每 X 分钟收集一次所有审计信息并以 XML 格式将其发送到外部服务器。这实际上是与您之前描述的非常相似的脚本。
我还要添加一个现有的插件https://github.com/frimik/foreman_audited_notifications,它具有与您要求的基本/相似的功能。