Syslog
用途說明#
傳送請求及回應日誌至Syslog。
啟用此插件前請務必要確認syslogd的服務有啟用,才會正常運作。
日誌格式請參考下方:日誌格式。
欄位配置說明#
啟用時可以看到以下畫面:
對應的配置說明如下:
| 參數 | 類型 | 預設值 | 說明 | 必填 |
|---|---|---|---|---|
| log_level | string | info | 可選擇的日誌紀錄嚴重性層級。 任何請求之 嚴重性比目前設定層級相等或更高的,都會記錄到系統日誌中。 可選的層級有: debug、info、notice、warning、err、crit、alert、emerg。 | |
| successful_severity | string | info | 指派給所有成功的請求(回應狀態代碼 < 400) ,其可選擇的日誌紀錄嚴重性層級,可選的層級有:debug、info、notice、warning、err、crit、alert、emerg。註:層級需>= log_level所設定的層級,才會判斷紀錄,例如:log_level設定為info,則successful_severity需設定為info以上之層級。 | |
| client_errors_severity | string | info | 指派給所有失敗的請求(回應狀態代碼 >= 400 且 < 500) ,其可選擇的日誌紀錄嚴重性層級,可選的層級有:debug、info、notice、warning、err、crit、alert、emerg。註:層級需>= log_level所設定的層級,才會判斷紀錄,例如:log_level設定為info,則client_errors_severity需設定為info以上之層級。 | |
| server_errors_severity | string | info | 指派給所有失敗的請求(回應狀態代碼 >= 500),其可選擇的日誌紀錄嚴重性層級,可選的層級有:debug、info、notice、warning、err、crit、alert、emerg。註:層級需>= log_level所設定的層級,才會判斷紀錄,例如:log_level設定為info,則server_errors_severity需設定為info以上之層級。 |
用法示例#
日誌格式#
日誌使用JSON的格式來組成,如下:
request包含有關客戶端發送的請求。response包含發送給客戶端的回應。tries包含負載均衡器對此請求進行的(成功和失敗)列表。route包含請求所對應之特定的API Manager 路由設定資料。service包含請求所對應之API Manager 路由關聯的服務設定資料。authenticated_entity如果已啟動身份認證插件,則會包含認證憑據。consumer如果已啟動身份認證插件,則會包含認證的用戶設定資料。latencies包含有關延遲的一些數據:proxy是最終服務處理請求所花費的時間。kong是運行所有插件所需的內部延遲。request是從客戶端讀取第一個字節到將最後一個字節發送到客戶端之間經過的時間。對於檢測速度較慢的客戶端很有用。
client_ip包含原始客戶端IP地址。started_at包含開始處理請求的時間的UTC時區時戳。
在全局啟用插件#
- 從網站左邊Menu中
外掛插件頁面中,點選右上角的新增外掛插件:

- 點選後,選擇
日誌頁籤,並啟用Syslog,填寫內容參考欄位配置說明,設定成功後,任何請求(不分服務、路由、用戶)的日誌都會記錄到Syslog上。
在服務端上啟用插件#
- 從網站左邊Menu中
服務 > 服務列表頁面中,選擇要啟用此插件的服務,假設為google,點選對應的編輯按鈕:

- 在編輯畫面中,點選上方的
外掛插件頁籤,再點選頁籤內容上方的新增外掛插件按鈕:

點選後,選擇 日誌 頁籤,並啟用Syslog,填寫內容參考欄位配置說明,設定成功後,僅有此服務(範例為google)請求的日誌會記錄到Syslog上。
在路由端上啟用插件#
可以由兩種方式來選擇路由,並啟用插件:
方式一:路由列表#
- 從網站左邊Menu中
服務 > 路由列表頁面中,選擇要啟用此插件的路由,假設為google,點選對應的編輯按鈕 :

方式二:服務 > 服務列表 > 路由列表#
- 從網站左邊Menu中
服務 > 服務列表頁面中,選擇要啟用此插件的路由 所屬之服務(假設為google),點選對應的編輯按鈕。
在編輯畫面中,點選上方的 路由 頁籤,選擇要啟用此插件的路由(假設為google),點選對應的編輯按鈕:

- 承第1步,點擊上述兩種方式之一的編輯按鈕後,在編輯畫面中,點選上方的
外掛插件頁籤,再點選頁籤內容上方的新增外掛插件按鈕:

點選新增外掛插件 按鈕後,選擇 日誌 頁籤,並啟用Syslog,填寫內容參考欄位配置說明,設定成功後,僅有此路由(範例為google)請求的日誌會記錄到Syslog上。
在用戶端上啟用插件#
- 從網站左邊Menu中
訂閱用戶 > 用戶列表頁面中,選擇要啟用此插件的用戶,假設為portaladmin,點選對應的編輯按鈕 :

- 在編輯畫面中,點選上方的
外掛插件頁籤,再點選頁籤內容上方的新增外掛插件按鈕:

點選後,選擇 日誌 頁籤,並啟用Syslog,填寫內容參考欄位配置說明,設定成功後,僅有此用戶(範例為portaladmin)請求的日誌會記錄到Syslog上。
驗證#
請先確認
syslogd的服務有啟用,以docker container為例,輸入以下command:若無法找到目前啟動的syslog服務,如下
則需自行開啟syslog:
正常有開啟syslog的話會顯示如下
啟用插件,將
log_level設定為info,而successful_severity設定為notice,並透過API Manager去呼叫服務,範例如下(使用curl命令來測試):因此次請求是成功回應(狀態碼<400),所以會比較
successful_severity的層級是否>=log_level的層級,有符合的話,即記錄日誌到Syslog內。API Manager在取得服務的回應後,會將該次的請求&回應之日誌,寫入Syslog內,以docker container為例,路徑檔案為
/var/log/messages。如下圖所示,即為設定驗證成功。 從下圖可以清楚地看到,Syslog所記錄的日誌確實為
successful_severity所設定的notice層級。