You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Elastic Search审计日志转发至外部存储及自定义日志?

Elasticsearch审计日志:跨存储配置与自定义方法

一、把审计日志存到非本地文件系统的方案

Elasticsearch默认只往本地的_audit.json写审计日志,但可以通过两种常用方式转到其他存储:

  • 用日志收集工具转发:用Filebeat、Logstash这类工具盯着本地的_audit.json文件,把日志转去你想要的存储,比如:
    • 专门用来存日志的Elasticsearch集群
    • S3、GCS这类云对象存储
    • Kafka、RabbitMQ消息队列,后续再由其他服务处理存储
      举个Filebeat的配置例子,在配置文件里加这段输入:
    filebeat.inputs:
    - type: filestream
      paths:
        - /path/to/elasticsearch/logs/_audit.json
      json.keys_under_root: true
      json.add_error_key: true
    
    接着配置对应的输出目标就行。
  • 自定义日志输出插件:如果有开发能力,可以基于Elasticsearch用的Log4j2框架写个自定义Appender,直接把审计日志写到目标存储(比如数据库、远程文件服务器)。改一下Elasticsearch的log4j2.properties配置,替换或者新增审计日志的Appender就行。

二、审计日志能不能自定义加信息?

可以,主要有两种方式:

  • 先筛选要记录的事件:通过xpack.security.audit.logfile.events.include或exclude配置,控制哪些审计事件被记录,比如只留登录失败、索引修改这类关键事件,减少没用的内容。
  • 添加自定义字段:
    • 日志收集阶段加:用Filebeat、Logstash这类工具,给日志添上主机名、集群标识、自定义标签这类信息;
    • Elasticsearch内部加:写个自定义插件,在审计事件生成的时候注入自定义元数据,比如用户的额外属性、请求的业务ID之类的。
      另外,Elasticsearch审计日志本身自带user_name、action、timestamp这些字段,你可以结合日志工具在这些基础上补信息。

注意:改完Elasticsearch的日志配置或者装了自定义插件后,得重启节点才生效,还要确保改动符合集群的安全规则。

内容的提问来源于stack exchange,提问作者lordav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 18:42:09