Version: 2.8.1
TCP Body Log
#
用途說明傳送請求及回應日誌至 TCP server。
note
與 TCP Log
插件相似,差異在於可以自定義是否紀錄回應 body 內容,以及可彈性自定義不需紀錄到日誌內的標頭。
日誌格式請參考下方:日誌格式。
#
欄位配置說明啟用時可以看到以下畫面:
對應的配置說明如下:
參數 | 類型 | 預設值 | 說明 | 必填 |
---|---|---|---|---|
host | string | 日誌欲發送的 IP 位址或主機名。 例如:10.18.66.1。 | V | |
port | number | 日誌欲發送的主機服務器之端口。 例如:30544。 | V | |
timeout | number | 10000 | 發送日誌到服務器的超時時間(以毫秒為單位)。 | |
keepalive | number | 60000 | 定義空閒連接關閉前的存活時間(以毫秒為單位)。 | |
hide_body | boolean | false | 設為 true :隱藏回應的 body 內容,不會將 body 內容記錄到日誌內。設為 false :會將 body 內容記錄到日誌內。 | |
hide_trace_record | boolean | true | 注意:僅有在 (1) 測試及偵錯 功能所發送的請求,或者是 (2) 發送請求的時候加上 Debug-Enabled: true 的 header,才會紀錄該次請求運行的插件詳細資訊。 設為 true :隱藏該次請求會運行的插件詳細資訊,不記錄到日誌內。設為 false :將該次請求會運行的插件詳細資訊,一併記錄到日誌內。 | |
clear_header | boolean | true | 設為 true :開啟過濾 header 的功能。設為 false :關閉過濾 header 的功能。 | |
clear_request_header_list | array of string | 定義不紀錄到日誌中的請求標頭。 例如: Content-Type ...等。沒設定代表所有請求標頭都會記錄於日誌中。 注意:當 clear_header 設定為 true ,才會觸發此設定。 | ||
clear_response_header_list | array of string | 定義不紀錄到日誌中的回應標頭,定義不紀錄到日誌中的請求標頭。 例如:Content-Type ...等。沒設定代表所有請求標頭都會記錄於日誌中。 注意:當 clear_header 設定為 true ,才會觸發此設定。 |
#
用法示例#
日誌格式日誌使用 JSON 的格式來組成,說明如下:
request
包含有關客戶端發送的請求。response
包含發送給客戶端的回應。tries
包含負載均衡器對此請求進行的(成功和失敗)列表。route
包含請求所對應之特定的 GOC API Gateway 路由設定資料。service
包含請求所對應之 GOC API Gateway 路由關聯的服務設定資料。authenticated_entity
如果已啟動身份認證插件,則會包含認證憑據。workspaces
包含與請求的路由所屬的工作區資料。目前版本的 services 及 routes 資訊內的ws_id
欄位會對應其所屬的 workspace ID 資訊。consumer
如果已啟動身份認證插件,則會包含認證的用戶設定資料。latencies
包含有關延遲的一些數據:proxy
是最終服務處理請求所花費的時間。kong
是運行所有插件所需的內部延遲。request
是從客戶端讀取第一個字節到將最後一個字節發送到客戶端之間經過的時間。對於檢測速度較慢的客戶端很有用。
client_ip
包含原始客戶端 IP 地址。started_at
包含開始處理請求的時間的 UTC 時區時戳。
範例:
#
在全局啟用插件- 從網站左邊 Menu 中
外掛插件
頁面中,點選右上角的新增外掛插件
:
- 點選後,選擇
日誌
頁籤,並啟用 TCP Body Log,填寫內容參考欄位配置說明,設定成功後,任何請求(不分服務、路由、用戶)的日誌都會發送到所配置的遠端主機上。
#
在服務端上啟用插件- 從網站左邊 Menu 中
服務 > 服務列表
頁面中,選擇要啟用此插件的服務,假設為google
,點選對應的編輯按鈕:
- 在編輯畫面中,點選上方的
外掛插件
頁籤,再點選頁籤內容上方的新增外掛插件
按鈕:
點選後,選擇 日誌
頁籤,並啟用 TCP Body Log,填寫內容參考欄位配置說明,設定成功後,僅有此服務(範例為google
)請求的日誌會發送到所配置的遠端主機上。
#
在路由端上啟用插件可以由兩種方式來選擇路由,並啟用插件:
#
方式一:路由列表- 從網站左邊 Menu 中
服務 > 路由列表
頁面中,選擇要啟用此插件的路由,假設為google
,點選對應的編輯按鈕:
#
方式二:服務 > 服務列表 > 路由列表- 從網站左邊 Menu 中
服務 > 服務列表
頁面中,選擇要啟用此插件的路由 所屬之服務(假設為google
),點選對應的編輯按鈕。
在編輯畫面中,點選上方的 路由
頁籤,選擇要啟用此插件的路由(假設為 google
),點選對應的編輯按鈕:
- 承第1步,點擊上述兩種方式之一的編輯按鈕後,在編輯畫面中,點選上方的
外掛插件
頁籤,再點選頁籤內容上方的新增外掛插件
按鈕:
點選新增外掛插件
按鈕後,選擇 日誌
頁籤,並啟用 TCP Body Log,填寫內容參考欄位配置說明,設定成功後,僅有此路由(範例為google
)請求的日誌會發送到所配置的遠端主機上。
#
在用戶端上啟用插件- 從網站左邊 Menu 中
訂閱用戶 > 用戶列表
頁面中,選擇要啟用此插件的用戶,假設為portaladmin
,點選對應的編輯按鈕:
- 在編輯畫面中,點選上方的
外掛插件
頁籤,再點選頁籤內容上方的新增外掛插件
按鈕:
點選後,選擇 日誌
頁籤,並啟用 TCP Body Log,填寫內容參考欄位配置說明,設定成功後,僅有此用戶(範例為 portaladmin
)請求的日誌會發送到所配置的遠端主機上。
#
驗證假設有個 Logstash Server,host 為 10.18.66.1,port 為 30544,啟用此插件時,填入對應的 host 及 port。
透過 GOC API Gateway 去呼叫服務,可以觀察到 Logstash Server 所接收到的資訊類似如下,即為設定驗證成功。