Yilialinn commented on code in PR #13270: URL: https://github.com/apache/apisix/pull/13270#discussion_r3122281942
########## docs/zh/latest/plugins/error-log-logger.md: ########## @@ -27,46 +27,62 @@ description: API 网关 Apache APISIX error-log-logger 插件用于将 APISIX # --> +<head> + <link rel="canonical" href="https://docs.api7.ai/hub/error-log-logger" /> +</head> + ## 描述 -`error-log-logger` 插件用于将 APISIX 的错误日志 (`error.log`) 推送到 TCP、Apache SkyWalking、Apache Kafka 或 ClickHouse 服务器,你还可以设置错误日志级别以将日志发送到服务器。 - -## 属性 - -| 名称 | 类型 | 必选项 | 默认值 | 有效值 | 描述 | -| -------------------------------- | ------- | ------ | ------------------------------ | ------------- | -------------------------------------------------------------------------------- | -| tcp.host | string | 是 | | | TCP 服务的 IP 地址或主机名。 | -| tcp.port | integer | 是 | | [0,...] | 目标端口。 | -| tcp.tls | boolean | 否 | false | [false, true] | 当设置为 `true` 时执行 SSL 验证。 | -| tcp.tls_server_name | string | 否 | | | TLS 服务名称标记。 | -| skywalking.endpoint_addr | string | 否 | http://127.0.0.1:12900/v3/logs | | SkyWalking 的 HTTP endpoint 地址,例如:http://127.0.0.1:12800。 | -| skywalking.service_name | string | 否 | APISIX | | SkyWalking 上报的 service 名称。 | -| skywalking.service_instance_name | String | 否 | APISIX Instance Name | | SkyWalking 上报的 service 实例名,如果希望直接获取本机主机名请设置为 `$hostname`。 | -| clickhouse.endpoint_addr | String | 否 | http://127.0.0.1:8213 | | ClickHouse 的 HTTP endpoint 地址,例如 `http://127.0.0.1:8213`。 | -| clickhouse.user | String | 否 | default | | ClickHouse 的用户名。 | -| clickhouse.password | String | 否 | | | ClickHouse 的密码。 | -| clickhouse.database | String | 否 | | | ClickHouse 的用于接收日志的数据库。 | -| clickhouse.logtable | String | 否 | | | ClickHouse 的用于接收日志的表。 | -| kafka.brokers | array | 是 | | | 需要推送的 Kafka broker 列表。 | -| kafka.brokers.host | string | 是 | | | Kafka broker 的节点 host 配置,例如 `192.168.1.1`| -| kafka.brokers.port | string | 是 | | | Kafka broker 的节点端口配置 | -| kafka.brokers.sasl_config | object | 否 | | | Kafka broker 中的 sasl_config | -| kafka.brokers.sasl_config.mechanism | string | 否 | "PLAIN" | ["PLAIN"] | Kafka broker 中的 sasl 认证机制 | -| kafka.brokers.sasl_config.user | string | 是 | | | Kafka broker 中 sasl 配置中的 user,如果 sasl_config 存在,则必须填写 | -| kafka.brokers.sasl_config.password | string | 是 | | | Kafka broker 中 sasl 配置中的 password,如果 sasl_config 存在,则必须填写 | -| kafka.kafka_topic | string | 是 | | | 需要推送的 Kafka topic。| -| kafka.producer_type | string | 否 | async | ["async", "sync"] | 生产者发送消息的模式。| -| kafka.required_acks | integer | 否 | 1 | [0, 1, -1] | 生产者在确认一个请求发送完成之前需要收到的反馈信息的数量。该参数是为了保证发送请求的可靠性。该属性的配置与 Kafka `acks` 属性相同,具体配置请参考 [Apache Kafka 文档](https://kafka.apache.org/documentation/#producerconfigs_acks)。 | -| kafka.key | string | 否 | | | 用于消息分区而分配的密钥。 | -| kafka.cluster_name | integer | 否 | 1 | [0,...] | Kafka 集群的名称,当有两个及以上 Kafka 集群时使用。只有当 `producer_type` 设为 `async` 模式时才可以使用该属性。| -| kafka.meta_refresh_interval | integer | 否 | 30 | [1,...] | 对应 [lua-resty-kafka](https://github.com/doujiang24/lua-resty-kafka) 中的 `refresh_interval` 参数,用于指定自动刷新 metadata 的间隔时长,单位为秒。 | -| timeout | integer | 否 | 3 | [1,...] | 连接和发送数据超时间,以秒为单位。 | -| keepalive | integer | 否 | 30 | [1,...] | 复用连接时,连接保持的时间,以秒为单位。 | -| level | string | 否 | WARN | | 进行错误日志筛选的级别,默认为 `WARN`,取值 ["STDERR", "EMERG", "ALERT", "CRIT", "ERR", "ERROR", "WARN", "NOTICE", "INFO", "DEBUG"],其中 `ERR` 与 `ERROR` 级别一致。 | - -注意:schema 中还定义了 `encrypt_fields = {"clickhouse.password"}`,这意味着该字段将会被加密存储在 etcd 中。具体参考 [加密存储字段](../plugin-develop.md#加密存储字段)。 - -本插件支持使用批处理器来聚合并批量处理条目(日志/数据)。这样可以避免插件频繁地提交数据,默认设置情况下批处理器会每 `5` 秒钟或队列中的数据达到 `1000` 条时提交数据,如需了解或自定义批处理器相关参数设置,请参考 [Batch-Processor](../batch-processor.md#配置) 配置部分。 +`error-log-logger` 插件将 APISIX 的错误日志(`error.log`)批量推送到 TCP、[Apache SkyWalking](https://skywalking.apache.org/)、Apache Kafka 或 ClickHouse 服务器。你可以指定日志级别,插件只发送符合条件的日志。 + +该插件默认为禁用状态。启用后,插件会自动开始将错误日志推送到远端服务器。你只需在插件元数据中配置远端服务器的详细信息,无需在路由等其他资源上进行配置。 + +## 插件元数据 + +该插件没有路由或服务级别的属性,所有配置均通过插件元数据完成。 + +| 名称 | 类型 | 必选项 | 默认值 | 有效值 | 描述 | +| --------------------------------------- | ------- | ------ | ------------------------------ | --------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| tcp | object | 否 | | | TCP 服务器配置。 | +| tcp.host | string | 是 | | | TCP 服务器的 IP 地址或主机名。 | +| tcp.port | integer | 是 | | [0,...] | 目标端口。 | +| tcp.tls | boolean | 否 | false | | 设置为 `true` 时启用 SSL 验证。 | +| tcp.tls_server_name | string | 否 | | | TLS 服务名称标记(SNI)。 | +| skywalking | object | 否 | | | SkyWalking 服务器配置。 | +| skywalking.endpoint_addr | string | 否 | http://127.0.0.1:12900/v3/logs | | SkyWalking 服务器的地址。 | +| skywalking.service_name | string | 否 | APISIX | | SkyWalking 上报的服务名称。 | +| skywalking.service_instance_name | string | 否 | APISIX Instance Name | | SkyWalking 上报的服务实例名称。设置为 `$hostname` 可直接获取本机主机名。 | +| clickhouse | object | 否 | | | ClickHouse 服务器配置。 | +| clickhouse.endpoint_addr | string | 否 | http://127.0.0.1:8123 | | ClickHouse 的 HTTP endpoint 地址。 | +| clickhouse.user | string | 否 | default | | ClickHouse 用户名。 | +| clickhouse.password | string | 否 | | | ClickHouse 密码。密码在存入 etcd 前会经过 AES 加密。详见[加密存储字段](../plugin-develop.md#加密存储字段)。 | +| clickhouse.database | string | 否 | | | 用于存储日志的数据库名称。 | +| clickhouse.logtable | string | 否 | | | 用于存储日志的表名称。该表需包含 `data` 列,插件将日志推送至该列。 | Review Comment: https://github.com/apache/apisix/blob/5ca64d18b03db3deda73098ca030f6f33d33a678/apisix/plugins/error-log-logger.lua#L62-L71 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
