跳到主要内容

参数

请参阅插件通用配置,了解所有插件通用的配置选项。

  • endpoint_addr

    string


    已废弃,请改用 endpoint_addrs。Elasticsearch API 端点地址。endpoint_addrendpoint_addrs 二选一配置。

  • endpoint_addrs

    array[string]


    Elasticsearch API 端点地址。如果配置了多个端点,每次写入会随机选择一个。endpoint_addrs 和已废弃的 endpoint_addr 二选一配置。

  • field

    object

    必填


    Elasticsearch 字段配置。

    • index

      string

      必填


      Elasticsearch _index 字段。

      自 API7 企业版 3.8.0 和 APISIX 3.17.0 起,index 支持在大括号中配置内置变量Lua 时间格式,以包含当前日期,例如 service-$host-{%Y-%m-%d}

    • type

      string

      必填


      Elasticsearch _type 字段。

  • log_format

    object


    使用 JSON 格式的键值对自定义日志格式。值可以引用 内置变量

    从 APISIX 3.15.0 开始,支持最多 5 层深度的嵌套日志格式结构。在 API7 企业版中,仅支持扁平键值结构;暂不支持嵌套结构。

    你还可以使用插件元数据全局配置日志格式,这将为所有 elasticsearch-logger 插件实例配置日志格式。如果单个插件实例上配置的日志格式与插件元数据上配置的日志格式不同,则以单个插件实例上配置的日志格式为准。有关更多详细信息,请参阅示例

  • log_format_extra

    object


    在默认日志条目之上叠加的额外日志字段,使用 JSON 格式的键值对。取值可引用内置变量。与会替换整个默认日志条目的 log_format 不同,log_format_extra 会保留默认条目并在其上添加所配置的字段。当设置了 log_format 时,log_format_extra 会被忽略。自 API7 企业版 3.9.15 版本起可用。

  • auth

    object


    Elasticsearch 用户认证配置。

    • username

      string


      Elasticsearch 认证用户名。

    • password

      string


      Elasticsearch 认证密码。该值会在存储前加密。

  • headers

    object


    发送到 Elasticsearch 的自定义 HTTP 请求头,以键值对形式配置。可作为 auth 的替代或补充,用于认证或其他用途。

    在 API7 企业版 3.9 系列中,自 3.9.16 起可用;在 3.10 系列中,自 3.10.2 起可用。

    自 APISIX 3.16.0 起可用。

  • ssl_verify

    boolean

    默认值:true


    如果为 true,则执行 SSL 验证。

  • timeout

    integer

    默认值:10


    Elasticsearch 发送数据超时时间(秒)。

  • include_req_body

    boolean

    默认值:false


    如果为 true,则在日志中包含请求体。注意,如果请求体太大无法保存在内存中,由于 NGINX 的限制,它可能无法被记录。

  • include_req_body_expr

    array[array]


    一个或多个 APISIX 表达式 条件的数组。仅当 include_req_body 为 true 时使用。只有当此处配置的表达式计算结果为 true 时,才会记录请求体。

  • include_resp_body

    boolean

    默认值:false


    如果为 true,则在日志中包含响应体。

  • include_resp_body_expr

    array[array]


    一个或多个 APISIX 表达式 条件的数组。仅当 include_resp_body 为 true 时使用。只有当此处配置的表达式计算结果为 true 时,才会记录响应体。

  • max_req_body_bytes

    integer

    默认值:524288

    有效值:

    大于或等于 1


    日志中包含的请求体大小上限(字节)。如果请求体超过此值,将被截断。自 APISIX 3.16.0 起可用。

  • max_resp_body_bytes

    integer

    默认值:524288

    有效值:

    大于或等于 1


    日志中包含的响应体大小上限(字节)。如果响应体超过此值,将被截断。自 APISIX 3.16.0 起可用。

  • name

    string

    默认值:elasticsearch-logger


    批处理器中的插件唯一标识符。如果使用 Prometheus 监控 APISIX 指标,该名称会导出到 apisix_batch_process_entries 中。

  • batch_max_size

    integer

    默认值:1000

    有效值:

    大于 0


    一个批次允许的日志条目数。达到该数量后,批次会发送到 Elasticsearch。将此参数设置为 1 可启用立即处理。

  • inactive_timeout

    integer

    默认值:5

    有效值:

    大于 0


    发送批次前等待新日志的最长时间,单位为秒。该值应小于 buffer_duration

  • buffer_duration

    integer

    默认值:60

    有效值:

    大于 0


    从最早条目起计,发送批次前允许等待的最长时间,单位为秒。

  • retry_delay

    integer

    默认值:1

    有效值:

    大于或等于 0


    批次失败后重试前的等待时间,单位为秒。

  • max_retry_count

    integer

    默认值:0

    有效值:

    大于或等于 0


    丢弃日志条目前允许的最大失败重试次数。

插件元数据

  • log_format

    object


    使用 JSON 格式的键值对自定义日志格式。值可以引用 内置变量

    从 APISIX 3.15.0 开始,支持最多 5 层深度的嵌套日志格式结构。在 API7 企业版中,仅支持扁平键值结构;暂不支持嵌套结构。

  • log_format_extra

    object


    在默认日志条目之上叠加的额外日志字段,使用 JSON 格式的键值对。取值可引用内置变量。与会替换整个默认日志条目的 log_format 不同,log_format_extra 会保留默认条目并在其上添加所配置的字段。当设置了 log_format 时,log_format_extra 会被忽略。自 API7 企业版 3.9.15 版本起可用。

  • max_pending_entries

    integer

    有效值:

    大于或等于 1


    批处理器中允许的最大未处理条目数。当达到此限制时,新条目将被丢弃,直到积压减少。这有助于防止在记录器缓慢或不可用时出现内存峰值。

    此参数在 API7 企业版 3.8.17 及更高版本和 APISIX 3.15.0 及更高版本中可用。