本文介绍云原生网关如何将请求日志上报到 Ckafka 或自建 Kafka 。
操作场景
操作步骤
1. 登录 TSF 控制台。
2. 在左侧导航栏单击云原生网关 ,选择需要操作的网关实例,进入实例详情页后,选择插件管理 > 系统插件。
3. 安装最新版本 tse-kafka-log 插件。

4. 进入云原生网关实例,切换页面到 基本信息 > konga 控制台,开启公网访问地址,获取账号和密码后,进入 konga 管理控制台
启用后,您的客户端可以使用系统分配的地址和端口通过外网访问实例,生效时间大约需要 1 分钟。
IP 白名单可以提供一定保护,请确保白名单设置的安全性。
初次开通公网绑定策略,存在延时,请您耐心等待。
IP 组合中包含0.0.0.0,将允许所有外网 IP 访问,请谨慎操作

5. 进入 konga 管理控制台页面后,单击侧边导航栏 SERVICES,选择需要的 service 并进入详情页。

6. 在 TSF Kafka Log 下方点击 ADD PLUGIN 出现填写信息的弹窗

7. 填写 Kafka server 地址以及 topic,其中 bootstrap servers 填写 kafka 的 server 地址,topic 是 kafka 的 topic 名字。

8. 该插件绑定 service 后,在已创建的服务器请求 service,消费 Kafka 后可以查看消费到当前请求的日志内容(JSON 格式)。




9. ts
e-kafka-log 插件配置字段详细说明
注意:
在 konga 的页面中,配置项键的_会被隐藏掉,例如:bootstrap_servers 会显示为 bootstrap servers。
配置项键 | 是否必填 | 默认值 | 说明 |
bootstrap_servers | 是 | 无 | 数组,一般的 bootstrap_servers 地址是9092端口,例如:10.0.90.16:9092 |
topic | 是 | 无 | topic 的名字,而不是 ID |
max_body_size | 否 | 8192 | 请求和响应的最大 body 大小,超过此大小的 body 会被截断 |
log_req_body | 否 | false | 是否打印请求 body |
log_res_body | 否 | false | 是否打印响应 body |
base64_req_body_encoding | 否 | 无 | 数组。当请求 Header:content-encoding 符合其中一个,会把请求的 body 进行 base64 encode |
base64_res_body_encoding | 否 | 无 | 数组。当响应 Header:content-encoding 符合其中一个,会把响应的 body 进行 base64 encode |
log_req_headers | 否 | true | 是否打印请求 headers |
log_res_headers | 否 | true | 是否打印响应 headers |
exclude_req_headers | 否 | 无 | 数组。打印请求 headers 中,删除指定的 header |
exclude_res_headers | 否 | 无 | 数组。打印响应 headers 中,删除指定的 header |
skip_expr_in_access | 否 | 无 | 高级,在 access 阶段运行一个 Lua 代码,判断是否跳过打印日志。return true 就是跳过 |
skip_expr_in_body_filter | 否 | 无 | 高级,在 body filter 阶段运行一个 Lua代码,判断是否跳过打印日志。return true 就是跳过 |
http_log_mode | 否 | default | default/close/custom。default 为内置的日志字段,close 为关闭日志,custom 为自定义日志 |
http_log_custom_format | 否 | {} | 七层自定义的日志格式。例如{"cip": "$remote_addr", "host": "$host"},跟 CLS 日志保持一致 |
stream_log_mode | 否 | default | default/close/custom。default 为内置的日志字段,close 为关闭日志,custom 为自定义日志 |
stream_log_custom_format | 否 | {} | 四层自定义的日志格式。例如{"cip": "$remote_addr", "protocol": "$protocol"},跟 CLS 日志保持一致 |
batch_size | 否 | 100 | 消息缓存队列长度,默认100 |
retry_count | 否 | 3 | 消息发送重试次数,失败时候会重试 |
flush_timeout | 否 | 2000 | 发送的超时时间,单位 ms |
compressor | 否 | Lz4 | 消息压缩算法,默认用 Lz4 |