网关kong记录接口处理请求和响应插件 tcp-log-with-body的安装

tcp-log-with-body

介绍

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

Kong的tcp-log-with-body插件

软件环境说明
  • kong version 2.1.4 - 2.8.3 [可用亲测]
  • CentOS version 7.3.1611
kong version --vv
2024/02/29 00:17:48 [verbose] Kong: 2.1.4
2024/02/29 00:17:48 [debug] ngx_lua: 10015
2024/02/29 00:17:48 [debug] nginx: 1015008
2024/02/29 00:17:48 [debug] Lua: LuaJIT 2.1.0-beta3
2.1.4cat /etc/centos-release
CentOS Linux release 7.3.1611 (Core) 
插件安装教程
  1. 找到 kong 插件存放位置
[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
  1. git 克隆项目到plugins目录下
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插件(见封面图)

  2. 接收日志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'},
.....

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/718066.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二、数据结构——单链表,双链表,栈,队列,单调栈,单调队列,KMP,Trie,并查集,堆,哈希表等内容。

对于链表来说,由于new操作时间太长,因此,算法题中一般使用静态链表。 1.单链表 采用数组实现单链表,可以直接开两个数据,一个数组存放数值,另外一个数据存放下一个元素(指针)。 示…

JavaScript“基本语法”笔记(自学第一天)!

一、JavaScript的用途和应用领域 JavaScript的应用领域非常广泛,主要包括以下几个方面: 网页交互性: JavaScript最初是为了增强网页的交互性而开发的,它可以控制网页的行为、样式和内容,使用户能够与网页进行实时交互&#xff0c…

一个教材上的CMS网站源码在Linux服务器上登录时验证码正常,但在windows下不能正常显示

一个教材上的CMS网站源码在Linux服务器上登录时验证码正常,但在windows下不能正常显示。 在linux服务器上能正常显示。显示界面如下所示:

蜻蜓FM语音下载(mediadown)

一、介绍 蜻蜓FM语音下载(mediadown),能够帮助你下载蜻蜓FM音频节目。如果你是蜻蜓FM会员,它还能帮你下载会员节目。 二、下载地址 本站下载:蜻蜓FM语音下载(mediadown) 百度网盘下载&#…

Web 应用防火墙(WAF):功能、应用场景和未来发展方向

Web 应用防火墙(WAF)是一种用于保护 Web 应用程序免受各种网络攻击的安全工具。WAF 可以检测并阻止对 Web 应用程序的恶意攻击,如SQL 注入、跨站脚本(XSS)和跨站请求伪造(CSRF)等。它通过检查 H…

【Redis 主从复制】

文章目录 1 :peach:环境配置:peach:1.1 :apple:三种配置方式:apple:1.2 :apple:验证:apple:1.3 :apple:断开复制和切主:apple:1.4 :apple:安全性:apple:1.5 :apple:只读:apple:1.6 :apple:传输延迟:apple: 2 :peach:拓扑结构:peach:2.1 :apple:⼀主⼀从结构:apple:2.2 :apple:⼀…

【MetaGPT】配置教程

MetaGPT配置教程(使用智谱AI的GLM-4) 文章目录 MetaGPT配置教程(使用智谱AI的GLM-4)零、为什么要学MetaGPT一、配置环境二、克隆代码仓库三、设置智谱AI配置四、 示例demo(狼羊对决)五、参考链接 零、为什么…

大数据技术(一)

大数据技术概述 大数据技术层面及其功能 数据采集与预处理 利用ETL(extract-transform-load)工具将分布的、异构数据源中的数据,如关系数据、平面数据文件等,抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中&…

C语言什么是循环嵌套?

一、问题 分⽀结构是可以进⾏嵌套的,循环结构同样也⽀持嵌套,那什么是循环嵌套呢? 二、解答 ⼀个循环体内⼜包含另⼀个完整的循环结构,就称之为循环嵌套。内嵌的循环中还可以嵌套循环,这就是多层循环,也叫…

类与对象详解 C++ (1)

1.struct和class 与C语言不同的是,C中struct和class可以定义成员变量和成员函数。更偏好用class。 2.类的定义 格式如下: class 为 定义类的 关键字, ClassName 为类的名字, {} 中为类的主体,注意 类定义结束时后面…

前端canvas项目实战——简历制作网站(五):右侧属性栏(字体、字号、行间距)

目录 前言一、效果展示二、实现步骤1. 优化代码,提取常量2. 实现3个编辑模块3. 实现updateFontProperty方法4. 一个常见的用法:仅更新当前选中文字的样式 三、Show u the code后记 前言 上一篇博文中,我们扩充了线条对象(fabric.…

springboot 整合oauth2

1、EnableOAuth2Client:客户端,提供OAuth2RestTemplate,用于客户端访问资源服务。 简要步骤:客户端访问资源->客户端发现没有资源访问token->客户端根据授权类型生成跳转url->浏览器 302 到认证授权服务进行认证、授权。…

Dockerfile构建过程详解

Dockerfile介绍 docker是用来构建docker镜像的文件!命令参数脚本! 构建步骤: 1、编写一个dockerfile文件 2、docker build构建成为一个镜像 3、docker run 运行镜像 …

PDF转Excel的未来:人工智能技术如何提升转换效率和准确性

随着信息技术的快速发展,PDF和Excel作为两种重要的文件格式,在日常生活和工作中扮演着至关重要的角色。PDF以其独特的跨平台阅读特性,成为了文件分享和传输的首选格式;而Excel则以其强大的数据处理能力,成为了数据分析…

【二分查找】【C++算法】378. 有序矩阵中第 K 小的元素

作者推荐 视频算法专题 本文涉及的基础知识点 二分查找算法合集 LeetCode378. 有序矩阵中第 K 小的元素 给你一个 n x n 矩阵 matrix ,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。 请注意,它是 排序后 的第 k 小元素&…

机器人持续学习基准LIBERO系列10——文件结构

0.前置 机器人持续学习基准LIBERO系列1——基本介绍与安装测试机器人持续学习基准LIBERO系列2——路径与基准基本信息机器人持续学习基准LIBERO系列3——相机画面可视化及单步移动更新机器人持续学习基准LIBERO系列4——robosuite最基本demo机器人持续学习基准LIBERO系列5——…

力扣日记3.3-【回溯算法篇】332. 重新安排行程

力扣日记:【回溯算法篇】332. 重新安排行程 日期:2023.3.3 参考:代码随想录、力扣 ps:因为是困难题,望而却步了一星期。。。T^T 332. 重新安排行程 题目描述 难度:困难 给你一份航线列表 tickets &#xf…

牛客小白月赛86

A-水盐平衡_牛客小白月赛86 (nowcoder.com) #include<bits/stdc.h> #define endl \n #define int long long using namespace std; int a,b,c,d; void solve() {cin>>a>>b>>c>>d;if((double)a/b>(double)c/d) cout<<S<<endl;els…

关于脉冲负载应用中电阻器,您需要了解的 11 件事?

不幸的是&#xff0c;电阻器在脉冲负载下可能会失效。当脉冲功率耗散到器件的电阻元件时&#xff0c;它会产生热量并增加电阻器的温度。过热会损坏电阻元件&#xff0c;导致电阻变化甚至设备开路。为了避免在设计中出现这种情况&#xff0c;以下是您在选择元件时应了解的有关电…

excel统计分析——拉丁方设计

参考资料&#xff1a;生物统计学 拉丁方设计也是随机区组设计&#xff0c;是对随机区组设计的一种改进。它在行的方向和列的方向都可以看成区组&#xff0c;因此能实现双向误差的控制。在一般的试验设计中&#xff0c;拉丁方常被看作双区组设计&#xff0c;用于提高发现处理效应…