跳到主要内容

参数

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

  • brokers

    array


    required

    vaild vaule:

    大于 0


    Kafka broker 节点列表。

    • host

      string


      required


      Kafka broker 的主机。

    • port

      integer


      required


      Kafka broker 的端口。

    • sasl_config

      object


      Kafka broker 的 SASL 配置。

      • mechanism

        string


        default: PLAIN


        vaild vaule:

        PLAIN, SCRAM-SHA-256, or SCRAM-SHA-512


        SASL 配置的机制。

        SCRAM-SHA-256SCRAM-SHA-512 选项在 API7 企业版 3.8.16 及更高版本和 APISIX 3.15.0 及更高版本中可用。

      • user

        string


        required


        SASL 配置的用户名。

      • password

        string


        required


        SASL 配置的密码。

  • kafka_topic

    string


    required


    用于组织推送日志的目标主题。

  • producer_type

    string


    default: async


    vaild vaule:

    async or sync


    日志生产者的类型。

  • required_acks

    integer


    vaild vaule:

    -1 or 1


    leader 需要接收到的确认数量,以便生产者认为请求已完成。这控制了发送记录的持久性。有关更多信息,请参阅 Kafka 文档。尚不支持 acks=0

  • key

    string


    用于为消息分配分区的键。

  • timeout

    integer


    default: 3


    vaild vaule:

    大于 0


    上游发送数据的超时时间。

  • meta_format

    string


    vaild vaule:

    default or origin


    收集请求信息的格式。设置为 default 以 JSON 格式收集信息,origin 以原始 HTTP 请求收集信息。请参阅示例了解更多详情。

  • log_format

    object


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

    在 APISIX 3.15.0 及更高版本中,日志格式嵌套结构支持最多五层深度。在 API7 企业版 中,仅支持扁平键值结构;尚不支持嵌套结构。

    你还可以使用插件元数据在全局范围内配置日志格式,这将为所有 kafka-logger 插件实例配置日志格式。如果单个插件实例上配置的日志格式与插件元数据上配置的日志格式不同,则以单个插件实例上配置的日志格式为准。请参阅示例了解更多详情。

  • include_req_body

    boolean


    default: false


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

  • include_req_body_expr

    array[array]


    一个或多个 APISIX 表达式 形式的条件数组。当 include_req_body 为 true 时使用。仅当此处配置的表达式评估为 true 时,才会记录请求体。

  • max_req_body_bytes

    integer


    default: 524288


    vaild vaule:

    =1


    允许的最大请求体(以字节为单位)。在此限制内的请求体将被推送到 Kafka。如果大小超过配置的值,则在推送到 Kafka 之前将截断该主体。

  • include_resp_body

    boolean


    default: false


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

  • include_resp_body_expr

    array[array]


    一个或多个 APISIX 表达式 形式的条件数组。当 include_resp_body 为 true 时使用。仅当此处配置的表达式评估为 true 时,才会记录响应体。

  • max_resp_body_bytes

    integer


    default: 524288


    vaild vaule:

    =1


    允许的最大响应体(以字节为单位)。在此限制内的响应体将被推送到 Kafka。如果大小超过配置的值,则在推送到 Kafka 之前将截断该主体。

  • cluster_name

    integer


    default: 1


    vaild vaule:

    大于或等于 0


    集群名称。当有两个或多个 Kafka 集群时使用。仅当 producer_type 设置为 async 时有效。

  • producer_batch_num

    integer


    default: 200


    vaild vaule:

    大于或等于 1


    一批发送的消息数量。与 lua-resty-kafka 中的 batch_num 参数相同。

  • producer_batch_size

    integer


    default: 1048576


    vaild vaule:

    大于或等于 0


    发送数据时使用的 TCP 发送缓冲区大小。与 lua-resty-kafka 中的 batch_size 参数相同,但以字节为单位。

  • producer_max_buffering

    integer


    default: 50000


    vaild vaule:

    大于或等于 1


    最大缓冲区大小。与 lua-resty-kafka 中的 max_buffering 参数相同。

  • producer_time_linger

    integer


    default: 1


    vaild vaule:

    大于或等于 1


    刷新时间。与 lua-resty-kafka 中的 flush_time 参数相同,但以秒为单位。

  • meta_refresh_interval

    integer


    default: 30


    vaild vaule:

    大于或等于 1


    自动刷新元数据的时间间隔。与 lua-resty-kafka 中的 refresh_interval 参数相同,但以秒为单位。

  • name

    string


    default: kafka logger


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

  • batch_max_size

    integer


    default: 1000


    vaild vaule:

    大于 0


    一批中允许的日志条目数。一旦达到,批次将被发送到日志服务。将此参数设置为 1 表示立即处理。

  • inactive_timeout

    integer


    default: 5


    vaild vaule:

    大于 0


    在将批次发送到日志服务之前等待新日志的最长时间(以秒为单位)。该值应小于 buffer_duration

  • buffer_duration

    integer


    default: 60


    vaild vaule:

    大于 0


    在将批次发送到日志服务之前,从最早的条目开始允许的最长时间(以秒为单位)。

  • retry_delay

    integer


    default: 1


    vaild vaule:

    大于或等于 0


    如果批次未成功发送,则重试将批次发送到日志服务的时间间隔(以秒为单位)。

  • max_retry_count

    integer


    default: 60


    vaild vaule:

    大于或等于 0


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

插件元数据

  • log_format

    object


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

    在 APISIX 3.15.0 及更高版本中,日志格式嵌套结构支持最多五层深度。在 API7 企业版 中,仅支持扁平键值结构;尚不支持嵌套结构。

  • max_pending_entries

    integer


    vaild vaule:

    大于或等于 1


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