http-logger 插件会以 JSON 形式将请求/响应日志推送到 HTTP 或 HTTPS 端点。日志会批量发送以提高效率,并支持使用 NGINX 变量自定义格式。你可以使用它将结构化日志发送到任意基于 HTTP 的日志后端(Elasticsearch、Loki、自定义 API 等)。
适用场景
- 将访问日志发送到基于 HTTP 的日志后端。
- 仅使用选定字段自定义日志格式。
- 有条件地捕获请求/响应体。
- 批量发送日志,并在失败时重试。
插件配置参考
| 字段 | 类型 | 是否必填 | 默认值 | 说明 |
|---|
uri | string | 是 | — | 用于日志发送的 HTTP/HTTPS 端点 |
auth_header | string | 否 | — | Authorization 请求头值 |
timeout | integer | 否 | 3 | 连接超时时间(秒) |
log_format | object | 否 | — | 自定义日志格式(支持 $variable 语法) |
include_req_body | boolean | 否 | false | 在日志中包含请求体 |
include_req_body_expr | array | 否 | — | 请求体日志记录的条件表达式 |
include_resp_body | boolean | 否 | false | 在日志中包含响应体 |
include_resp_body_expr | array | 否 | — | 响应体日志记录的条件表达式 |
concat_method | string | 否 | "json" | 批处理格式:json(数组)或 new_line(按换行符分隔) |
ssl_verify | boolean | 否 | false | 为 HTTPS 端点校验 SSL 证书 |
批处理参数
| 字段 | 类型 | 默认值 | 说明 |
|---|
batch_max_size | integer | 1000 | 每批次的最大条目数 |
inactive_timeout | integer | 5 | 刷新未完成批次前等待的秒数 |
buffer_duration | integer | 60 | 强制刷新前最早条目的最大存留时间 |
max_retry_count | integer | 0 | 失败时的重试次数 |
retry_delay | integer | 1 | 重试之间的间隔秒数 |
默认日志条目格式