日志文件审计输出

编辑

logfile 审计输出是唯一的审计输出方式。它将数据写入日志目录中的 <集群名称>_audit.json 文件。

如果您覆盖 log4j2.properties 并且没有为任何审计跟踪指定附加器,审计事件将被转发到根附加器,默认情况下,根附加器指向 elasticsearch.log 文件。

日志条目格式

编辑

审计事件被格式化为 JSON 文档,每个事件都打印在 <集群名称>_audit.json 文件中的单独一行。条目本身不包含行尾分隔符。审计事件 JSON 格式有些特殊,因为大多数字段都遵循点号命名语法,并且是有序的,并包含非空的字符串值。这种格式创建了一个结构化的列式外观,类似于 CSV,与等效的嵌套 JSON 文档相比,可以更容易地进行可视化检查。

但是,有一些属性是上述格式的例外。 putdeletechangecreateinvalidate 属性,仅在具有 event.type: "security_config_change" 属性的事件中出现,包含正在生效的安全更改的 嵌套 JSON 表示形式。因此,安全配置更改的内容不会在审计事件文档中显示为顶级的点命名字段。 这是因为这些字段特定于特定类型的安全更改,并且不会在任何其他审计事件中显示。因此,列式格式的好处要有限得多。 在这种情况下,嵌套结构的节省空间的好处是首选的折衷方案。

当存在 request.body 属性时(请参阅审计搜索查询),它包含一个字符串值,该值包含完整的 HTTP 请求正文,并按照 JSON RFC 4677 进行转义。

有一个审计事件类型的列表,其中指定了每个条目类型的字段集合以及示例。

日志文件输出设置

编辑

可以使用 elasticsearch.yml 文件中的设置来控制事件以及有关记录内容的其他一些信息。请参阅被审计的事件设置本地节点信息设置

请注意,即使所有安全 API(例如,更改用户密码的 API)在审计时都已过滤掉凭据,当在审计事件中包含请求正文时,敏感数据可能会以纯文本形式进行审计

您还可以在位于 ES_PATH_CONF 中的 log4j2.properties 文件中配置日志文件的写入方式(或者查看源代码中的log4j2.properties的相关部分)。默认情况下,审计信息会附加到位于标准 Elasticsearch logs 目录(通常位于 $ES_HOME/logs)中的 <集群名称>_audit.json 文件中。该文件也会每天轮换和存档,或达到 1GB 的文件大小限制时也会轮换和存档。