参数
请参阅插件通用配置,了解所有插件通用的配置选项。
broker_list
object
已废弃,请改用
brokers。Kafka broker 主机及其端口的映射。broker_list和brokers二选一配置。brokers
array
有效值:
大于 0
Kafka broker 节点列表。
brokers和已废弃的broker_list二选一配置。host
string
必填
Kafka broker 的主机。
port
integer
必填
Kafka broker 的端口。
sasl_config
object
Kafka broker 的 SASL 配置。
mechanism
string
默认值:
PLAIN有效值:
PLAIN、SCRAM-SHA-256或SCRAM-SHA-512SASL 配置的机制。
SCRAM-SHA-256和SCRAM-SHA-512选项在 API7 企业版 3.8.16 及更高版本和 APISIX 3.15.0 及更高版本中可用。user
string
必填
SASL 配置的用户名。
password
string
必填
SASL 配置的密码。该值在存储到 etcd 前会使用 AES 加密。
kafka_topic
string
必填
用于组织推送日志的目标主题。
producer_type
string
默认值:
async有效值:
async或syncKafka 生产者模式。在
async模式下,消息会先在本地缓冲,再发送到 Kafka;在sync模式下,消息不会使用异步生产者缓冲区,而是直接发送。required_acks
api_version
integer
默认值:
1有效值:
0、1或2向 broker 发送消息时使用的 Kafka Produce API 版本。只有版本
2会携带消息时间戳,使 broker 能够存储它;使用默认值1时,消息可能在没有可用时间戳的情况下被记录。自 API7 企业版 3.9.14 起可用。key
string
用于为消息分配分区的键。
timeout
integer
默认值:
3有效值:
大于 0
上游发送数据的超时时间。
meta_format
string
默认值:
default有效值:
default或origin收集请求信息的格式。设置为
default时以 JSON 格式收集信息,设置为origin时保留原始 HTTP 请求格式。有关更多信息,请参阅示例。log_format_extra
object
在默认日志条目之上叠加的额外日志字段,使用 JSON 格式的键值对。取值可引用内置变量。与会替换整个默认日志条目的
log_format不同,log_format_extra会保留默认条目并在其上添加所配置的字段。当设置了log_format时,log_format_extra会被忽略。自 API7 企业版 3.9.15 版本起可用。include_req_body
boolean
默认值:
false如果为 true,则在 日志中包含请求体。请注意,如果请求体太大而无法保存在内存中,由于 NGINX 的限制,它无法被记录。
include_req_body_expr
max_req_body_bytes
integer
默认值:
524288有效值:
大于或等于 1
允许的最大请求体(以字节为单位)。在此限制内的请求体将被推送到 Kafka。如果大小超过配置的值,则在推送到 Kafka 之前将截断该主体。
include_resp_body
boolean
默认值:
false如果为 true,则在日志中包含响应体。
include_resp_body_expr
max_resp_body_bytes
integer
默认值:
524288有效值:
大于或等于 1
允许的最大响应体(以字节为单位)。在此限制内的响应体将被推送到 Kafka。如果大小超过配置的值,则在推送到 Kafka 之前将截断该主体。
cluster_name
integer
默认值:
1有效值:
大于或等于 1
集群名称。当有两个或多个 Kafka 集群时使用。仅当
producer_type设置为async时有效。producer_batch_num
producer_batch_size
producer_max_buffering
integer
默认值:
50000有效值:
大于或等于 1
异步生产者可在本地缓冲的 Kafka 生产者消息数上限。与 lua-resty-kafka 中的
max_buffering参数相同。此缓冲区不受max_pending_entries限制;内存用量还取决于 worker 数量、batch_max_size、日志格式,以及是否记录请求体或响应体。producer_time_linger
meta_refresh_interval
name
string
默认值:
kafka logger批处理器的插件唯一标识符。如果你使用 Prometheus 监控 APISIX 指标,则名称将导出到
apisix_batch_process_entries中。batch_max_size
integer
默认值:
1000有效值:
大于 0
一批中允许的日志条目数。一旦达到,批次将被发送到日志服务。将此参数设置为 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 及更高版本中,日志格式嵌套结构支持最多五层深度。在 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
批处理器中允许的最大未处理条目数。达到此限制后,在积压量降低前,新条目将被丢弃。此设置不限制 Kafka 异步生产者的本地缓冲区。