api 网关 kong 数据库记录请求响应报文

本文涉及的产品
AI 网关免费试用,2900元额度,限量100份
云原生 API 网关,700元额度,多规格可选
简介: Kong的tcp-log-with-body插件是一个高效的工具,它能够转发Kong处理的请求和响应。这个插件非常适用于需要详细记录API请求和响应信息的情景,尤其是在调试和排查问题时。

tcp-log-with-body

介绍

Kong的tcp-log-with-body插件是一个高效的工具,它能够转发Kong处理的请求和响应。这个插件非常适用于需要详细记录API请求和响应信息的情景,尤其是在调试和排查问题时。

软件环境说明

  • kong version 2.1.4
  • CentOS version 7.3.1611

插件安装教程

  1. 找到 kong 插件存放位置
    ```bash
    ─[root@bwg] - [/usr/local/share/lua/5.1/kong/plugins] - [2024-02-28 11:52:33]
    └─[0] ls
    acl basic-auth file-log http-log-with-body key-auth post-function request-size-limiting session udp-log
    acme bot-detection grpc-gateway http-mirror ldap-auth pre-function request-termination statsd zipkin
    aws-lambda correlation-id grpc-web ip-restriction loggly prometheus request-transformer syslog
    azure-functions cors hmac-auth jwt log-serializers proxy-cache response-ratelimiting tcp-log
    base_plugin.lua datadog http-log kafka-log oauth2 rate-limiting response-transformer tcp-log-with-body
2. git 克隆项目到plugins目录下
```bash
git clone https://gitee.com/XiongMingcai/tcp-log-with-body.git
  1. 修改kong配置文件 加入启用tcp-log-with-body 插件
vim /etc/kong/kong.conf

修改位置

plugins = bundled,tcp-log-with-body
  1. 重启kong

监听启动错误日志

tail -f /usr/local/kong/logs/error.log

重启kong

sudo systemctl restart kong

使用说明

  1. 配置tcp-log-with-body插件

输入图片说明

  1. 接收日志tcp请求 node.js 模拟tcp-log-server
const net = require('net');
const {inspect} = require("util");

// Create a server instance
const server = net.createServer((socket) => {


    socket.on('data', (data) => {
 // 将数据转换为字符串,并以JSON格式输出

        const dataString = data.toString('utf8');
        console.log("Received data:", inspect(JSON.parse(dataString), false, null, true));

});


    socket.on('end', () => {

    });
});

// Error callback
server.on('error', (err) => {
    console.error('Server error:', err);
});

// Listening callback
server.listen(9999, '127.0.0.1', () => {
    console.log('Server is listening on 127.0.0.1:9999');
});
  1. 效果
.....
  request: {
   
   
    querystring: {
   
   },
    size: '563',
    uri: '/ok',
    url: 'https://ssl.hunangl.com:443/ok',
    headers: {
   
   
      host: 'ssl.hunangl.com',
      authorization: 'REDACTED',
      'postman-token': 'a0cf800e-06ac-41b0-8a4d-d849c945cee1',
      accept: '*/*',
      digest: 'SHA-256=eji/gfOD9pQzrW6QDTWz4jhVk/dqe3q11DVbi6Qe4ks=',
      'request-id': '5c54a71f-9bdb-445c-8549-f4af181ad49c',
      'cache-control': 'no-cache',
      'content-length': '13',
      'accept-encoding': 'gzip, deflate, br',
      'user-agent': 'PostmanRuntime/7.36.3',
      'x-date': 'Thu, 29 Feb 2024 05:14:21 GMT',
      connection: 'keep-alive',
      'content-type': 'application/json'
    },
    body: '{"foo":"bar"}',
    method: 'POST'
  },
  client_ip: '54.86.50.139',
.....
response: {
   
   
    body: '{
   
   "host":"0.0.0.0:8300","connection":"keep-alive","x-forwarded-for":"54.86.50.139","x-forwarded-proto":"https","x-forwarded-host":"ssl.hunangl.com","x-forwarded-port":"443","x-real-ip":"54.86.50.139","content-length":"13","x-date":"Thu, 29 Feb 2024 05:14:21 GMT","authorization":"hmac username=\\"hmac_username\\", algorithm=\\"hmac-sha256\\", headers=\\"x-date request-line digest\\", signature=\\"Kh+sGhrL3NbFNa9dsLdTs/q6hMBublOEPYUw4j8rLGM=\\"","digest":"SHA-256=eji/gfOD9pQzrW6QDTWz4jhVk/dqe3q11DVbi6Qe4ks=","content-type":"application/json","user-agent":"PostmanRuntime/7.36.3","accept":"*/*","cache-control":"no-cache","postman-token":"a0cf800e-06ac-41b0-8a4d-d849c945cee1","accept-encoding":"gzip, deflate, br","request-id":"5c54a71f-9bdb-445c-8549-f4af181ad49c"}',
    headers: {
   
   
      'content-type': 'application/json; charset=utf-8',
      date: 'Thu, 29 Feb 2024 05:14:15 GMT',
      connection: 'close',
      'server-port': '8300',
      'request-ip': '54.86.50.139',
      'content-length': '761',
      via: 'kong/2.1.4',
      'x-kong-proxy-latency': '6',
      'x-kong-upstream-latency': '12',
      'request-id': '5c54a71f-9bdb-445c-8549-f4af181ad49c'
    },
    status: 200,
    size: '1075'
  },
.....
目录
相关文章
|
21天前
|
JSON 监控 API
掌握使用 requests 库发送各种 HTTP 请求和处理 API 响应
本课程全面讲解了使用 Python 的 requests 库进行 API 请求与响应处理,内容涵盖环境搭建、GET 与 POST 请求、参数传递、错误处理、请求头设置及实战项目开发。通过实例教学,学员可掌握基础到高级技巧,并完成天气查询应用等实际项目,适合初学者快速上手网络编程与 API 调用。
305 130
|
2月前
|
JSON API 数据格式
1688店铺订单列表订单详情订单物流API响应数据解析
1688平台作为阿里巴巴旗下的B2B电商利器,提供高效订单管理API,支持订单查询、状态变更与物流同步,助力企业提升运营效率。本文附Python请求示例代码,实现便捷对接与数据获取。
|
2月前
|
JSON API 数据格式
天猫商品评论API响应数据解析
天猫商品评论API是淘宝开放平台提供的数据接口,支持获取评论内容、评分、时间等信息,具备筛选、分页功能,适用于电商数据分析与用户行为研究。
|
2月前
|
JSON 监控 API
天猫商品详情API响应数据解析
天猫商品详情API是天猫开放平台的核心接口,通过商品ID可获取标题、价格、图片、库存等详细信息,广泛应用于价格监控、竞品分析等场景。支持HTTP请求,返回JSON格式数据,Python示例代码展示了如何高效调用该接口获取商品数据。
|
2月前
|
JSON API 数据格式
淘宝商品评论API响应数据解析
淘宝商品评论API是淘宝开放平台的重要接口,支持获取商品用户评价信息,助力电商数据分析与商品优化。提供分页查询、评分筛选、时间过滤等功能,数据格式为JSON,适用于Python等语言调用,便于开发者灵活集成。
|
2月前
|
JSON API 数据格式
小红书笔记详情API响应数据解析
小红书笔记详情API可获取笔记核心数据,适用于内容分析与竞品监测。支持HTTP GET/POST请求,返回JSON格式数据,包含笔记标题、互动数据及作者信息。文档提供Python请求示例,建议添加异常重试机制,助力品牌营销与用户行为分析。
|
2月前
|
数据采集 JSON 监控
值得买商品详情API响应数据解析
“什么值得买”商品详情API支持获取商品标题、价格、促销信息等核心数据,适用于价格监控与优惠分析。提供商品基础信息、实时价格、评价数据及库存状态监控,助力电商数据采集与分析。
|
19天前
|
JSON 监控 测试技术
亚马逊:调用订单退款API自动化处理售后请求,缩短用户等待时间
在电商运营中,售后效率直接影响用户体验与平台声誉。亚马逊订单退款API为卖家提供自动化工具,通过编程方式高效处理退款请求,显著缩短用户等待时间。本文详解如何集成该API,实现退款流程自动化,提升响应速度与用户满意度。
52 0
|
2月前
|
人工智能 JSON JavaScript
【干货满满】API接口请求封装
在 Vue 项目中,常使用 Axios 与后台交互,它基于 Promise,支持浏览器和 Node.js,具备拦截请求、取消请求、JSON 转换等功能。本文介绍了 Axios 的安装、封装及使用方法,包括创建实例、请求拦截、响应处理、API 管理等内容,并提供了完整代码示例,便于统一管理和调用接口,适用于前后端分离开发模式。
|
2月前
|
JSON 监控 BI
京东店铺所有商品API响应数据解析
京东店铺商品API由京东开放平台提供,可获取指定店铺的商品基础信息、价格、库存及销量等数据,适用于商品管理、竞品分析、价格监控等场景。支持HTTPS请求、JSON格式返回,提供Python示例,便于第三方系统集成与数据应用。

热门文章

最新文章