網關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.pswp.cn/news/718066.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/718066.shtml
英文地址,請注明出處:http://en.pswp.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;用于提高發現處理效應…