日志文件审计输出
编辑日志文件审计输出编辑
logfile
审计输出是审计的唯一输出。它将数据写入日志目录中的 <clustername>_audit.json
文件。
如果覆盖 log4j2.properties
并且没有为任何审计跟踪指定附加器,则审计事件将转发到根附加器,默认情况下它指向 elasticsearch.log
文件。
日志条目格式编辑
审计事件格式化为 JSON 文档,每个事件在 <clustername>_audit.json
文件中单独一行打印。条目本身不包含行尾分隔符。审计事件 JSON 格式有些特殊,因为 大多数 字段遵循点分隔名称语法,是有序的,并且包含非空字符串值。这种格式创建了一个结构化的列式外观,类似于 CSV,可以更轻松地进行视觉检查(与等效的嵌套 JSON 文档相比)。
但是,有一些属性是上述格式的例外。 put
、delete
、change
、create
和 invalidate
属性(仅在具有 event.type: "security_config_change"
属性的事件中存在)包含生效的安全更改的 嵌套 JSON 表示。因此,安全配置更改的内容不会在审计事件文档中显示为顶层点命名字段。这是因为字段特定于特定类型的安全更改,并且不会出现在任何其他审计事件中。因此,列式格式的优势非常有限;在这种情况下,嵌套结构的节省空间优势是首选的权衡。
当 request.body
属性存在时(参见 审计搜索查询),它包含一个字符串值,其中包含完整的 HTTP 请求主体,并根据 JSON RFC 4677 进行转义。
有一个 审计事件类型 列表,指定每种条目类型的字段集以及示例。
日志文件输出设置编辑
可以使用 elasticsearch.yml
文件中的设置来控制事件和其他有关记录内容的信息。参见 已审计事件设置 和 本地节点信息设置。
请注意,即使所有安全 API(例如更改用户密码的 API)在审计时都会过滤掉凭据,但 敏感数据可能会以纯文本形式进行审计,即使在审计事件中包含请求主体时也是如此。
您还可以配置 log4j2.properties
文件中日志文件的写入方式,该文件位于 ES_PATH_CONF
中(或者查看 源代码中的 log4j2.properties 的相关部分)。默认情况下,审计信息将追加到标准 Elasticsearch logs
目录(通常位于 $ES_HOME/logs
)中的 <clustername>_audit.json
文件。该文件也会每天轮换和归档,或者在达到 1GB 文件大小限制时进行轮换和归档。