HTTP Log
#
用途說明傳送請求及回應日誌至HTTP server。
日誌格式請參考下方:日誌格式。
#
欄位配置說明啟用時可以看到以下畫面:
對應的配置說明如下:
參數 | 類型 | 預設值 | 說明 | 必填 |
---|---|---|---|---|
http_endpoint | string | 日誌欲發送的HTTP URL端點(包括要使用的協定)。 ex: http://mockbin.org/bin/logs | V | |
method | string | POST | 用於將日誌發送到HTTP server的方法。 預設為 POST ,也支援PUT 和PATCH 。 | |
content_type | string | application/json | 表明發送的日誌數據類型。 唯一可用的類型選項是 application/json 。 | |
timeout | number | 10000 | 發送日誌到服務器的超時時間(以毫秒為單位)。 | |
keepalive | number | 60000 | 定義空閒連接關閉前的存活時間(以毫秒為單位)。 | |
retry_count | integer | 10 | 將日誌發送到服務器時重試的次數。 | |
queue_size | integer | 1 | 每次發送到服務器的最大日誌紀錄數量。 | |
flush_timeout | number | 2 | 如果設定的queue_size > 1,則表示在發送的日誌記錄數量尚未達到queue_size 之前的最大空閒連接過期時間。(以秒為單位)。 |
註: 如果 http_endpoint
有包含 帳號及密碼,例如:http://bob:password@example.com/logs
,則API Manager會在日誌請求中自動包含 由帳號與密碼轉換basic-auth的Authorization
header。
#
用法示例#
日誌格式如果參數queue_size
設定 > 1,則日誌使用JSON的格式來組成,如下:
request
包含有關客戶端發送的請求。response
包含發送給客戶端的回應。tries
包含負載均衡器對此請求進行的(成功和失敗)列表。route
包含請求所對應之特定的API Manager 路由設定資料。service
包含請求所對應之API Manager 路由關聯的服務設定資料。authenticated_entity
如果已啟動身份認證插件,則會包含認證憑據。consumer
如果已啟動身份認證插件,則會包含認證的用戶設定資料。latencies
包含有關延遲的一些數據:proxy
是最終服務處理請求所花費的時間。kong
是運行所有插件所需的內部延遲。request
是從客戶端讀取第一個字節到將最後一個字節發送到客戶端之間經過的時間。對於檢測速度較慢的客戶端很有用。
client_ip
包含原始客戶端IP地址。started_at
包含開始處理請求的時間的UTC時區時戳。
#
在全局啟用插件- 從網站左邊Menu中
外掛插件
頁面中,點選右上角的新增外掛插件
:
- 點選後,選擇
日誌
頁籤,並啟用HTTP Log,填寫內容參考欄位配置說明,設定成功後,任何請求(不分服務、路由、用戶)的日誌都會透過HTTP請求發送給該服務。
#
在服務端上啟用插件- 從網站左邊Menu中
服務 > 服務列表
頁面中,選擇要啟用此插件的服務,假設為google
,點選對應的編輯按鈕:
- 在編輯畫面中,點選上方的
外掛插件
頁籤,再點選頁籤內容上方的新增外掛插件
按鈕:
點選後,選擇 日誌
頁籤,並啟用HTTP Log,填寫內容參考欄位配置說明,設定成功後,僅有此服務(範例為google
)請求的日誌會透過HTTP請求發送給指定的服務。
#
在路由端上啟用插件可以由兩種方式來選擇路由,並啟用插件:
#
方式一:路由列表- 從網站左邊Menu中
服務 > 路由列表
頁面中,選擇要啟用此插件的路由,假設為google
,點選對應的編輯按鈕 :
#
方式二:服務 > 服務列表 > 路由列表- 從網站左邊Menu中
服務 > 服務列表
頁面中,選擇要啟用此插件的路由 所屬之服務(假設為google
),點選對應的編輯按鈕。
在編輯畫面中,點選上方的 路由
頁籤,選擇要啟用此插件的路由(假設為google
),點選對應的編輯按鈕:
- 承第1步,點擊上述兩種方式之一的編輯按鈕後,在編輯畫面中,點選上方的
外掛插件
頁籤,再點選頁籤內容上方的新增外掛插件
按鈕:
點選新增外掛插件
按鈕後,選擇 日誌
頁籤,並啟用HTTP Log,填寫內容參考欄位配置說明,設定成功後,僅有此路由(範例為google
)請求的日誌會透過HTTP請求發送給指定的服務。
#
在用戶端上啟用插件- 從網站左邊Menu中
訂閱用戶 > 用戶列表
頁面中,選擇要啟用此插件的用戶,假設為portaladmin
,點選對應的編輯按鈕 :
- 在編輯畫面中,點選上方的
外掛插件
頁籤,再點選頁籤內容上方的新增外掛插件
按鈕:
點選後,選擇 日誌
頁籤,並啟用HTTP Log,填寫內容參考欄位配置說明,設定成功後,僅有此用戶(範例為portaladmin
)請求的日誌會透過HTTP請求發送給指定的服務。
#
驗證假設目前對應收取日誌的HTTP server URL端點為http://172.35.1.146/logs
,方法是使用POST
,啟用此插件時,填入對應的http_endpoint、method。
透過API Manager去呼叫服務,範例如下(使用curl
命令來測試):
API Manager在取得服務的回應後,會將該次的請求&回應之日誌,使用POST
方法來傳送給http://172.35.1.146/logs
。
觀察HTTP server(http://172.35.1.146/logs 所在的服務)確實有接收到日誌,內容範例如下,即為設定驗證成功。