您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件。 資訊
根據預設,Apigee 的路由器會設定為僅記錄錯誤記錄檔中的錯誤訊息。不過在許多情況下,您可能需要收集更多資訊,才能判斷特定錯誤發生的原因。其中一個方法是將路由器設為在偵錯模式下運作,以便取得偵錯記錄檔,讓您進一步瞭解錯誤並更快解決問題。
本文說明如何在特定虛擬主機上的要求,在 Apigee Edge 的路由器上啟用偵錯記錄檔。啟用偵錯記錄功能後,就能在「北行」(用戶端應用程式和路由器之間) 有任何問題時擷取更多資訊,例如要求格式錯誤、 400 錯誤要求 - SSL 憑證錯誤。
事前準備
- 如果您不熟悉 NGINX 錯誤記錄檔和記錄層級,請參閱 NGINX 錯誤記錄檔說明文件。
- 針對您要收集偵錯資訊的 API 要求,收集機構、環境和虛擬主機名稱。
在路由器上啟用 NGINX 偵錯記錄檔
本節說明如何在邊緣路由器上啟用偵錯記錄檔。
識別相關的虛擬主機設定檔
下列步驟說明如何在路由器上找到相關的虛擬主機設定檔:
- 如果您知道要偵錯的特定 API 要求的機構名稱、環境名稱和虛擬主機,請按下列步驟判斷虛擬主機 conf 檔案:
- 前往
/opt/nginx/conf.d/
目錄。 - 在
conf.d
目錄中使用下列指令來搜尋檔案 ORG_NAME_ENV_NAME_VIRTUALHOST.conf
:ls -ltrh | grep "ORG_NAME_ENV_NAME_VIRTUALHOST_NAME"
- 前往
-
如果您不知道機構名稱,可以使用 API 要求中使用的主機名稱名稱來識別虛擬主機設定檔,如下所示:
前往
/opt/nginx/conf.d/
目錄,然後搜尋使用下列指令發出要求的hostalias
:ls -ltrh | grep -r 'HOST_ALIAS_NAME'
輸出內容範例:
假設主機別名的名稱是
opdk.cert-test.com
。執行ls -ltrh
指令時,您會看到如下所示的輸出內容:
為路由器上的特定虛擬主機啟用偵錯記錄功能
下列步驟說明如何為特定虛擬主機的 Apigee 路由器啟用偵錯記錄檔。
- 在編輯器中,開啟路由器機器上的下列檔案:
/opt/nginx/conf.d/ORG_NAME_ENV_NAME_VIRTUALHOST_NAME.conf
。例如:vi /opt/nginx/conf.d/ORG_NAME_ENV_NAME_VIRTUALHOST_NAME.conf
- 變更下列程式碼:
error_log /opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log error;
到
error_log /opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log info;
- 儲存變更。
- 執行 NGINX 重新載入指令。例如:
sudo /opt/nginx/scripts/apigee-nginx reload
- 下列檔案現在會擷取偵錯記錄檔:
/opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log
- 如果您想在多個路由器上擷取偵錯記錄,請在每個路由器上重複執行上述步驟。
驗證偵錯資訊會記錄在 NGINX 錯誤記錄檔中
-
當用戶端在與虛擬主機設定相關聯的主機別名和通訊埠提出 API 要求後,系統就會從下列檔案擷取偵錯記錄:
/opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log
-
確認您看到了 API 要求的偵錯資訊,如以下範例所示:
偵錯資訊範例:
2021/01/27 02:48:40 [warn] 27624#27624: *3777 a client request body is buffered to a temporary file /opt/apigee/var/log/edge-router/nginx/client_temp/0000000001, client: XX.XX.XX.XX, server: XX.XX.XX.XX, request: "POST /post-no-target HTTP/1.1", host: "XX.XX.XX.XX:443"
當用戶端傳送內含大型酬載的
POST
要求時,系統會擷取上述資訊。只有在啟用偵錯記錄功能時,系統才會顯示這個記錄。 - 如未顯示其他偵錯資訊,請確認您已按照「 為路由器上的特定虛擬主機啟用偵錯記錄功能」一文所述的所有步驟正確執行。如果錯過任何步驟,請再次正確重複所有步驟。
- 如果仍無法取得偵錯資訊,請與 Apigee Edge 支援團隊聯絡。
停用路由器上特定虛擬主機的偵錯記錄檔
本節說明如何停用特定虛擬主機的 Router 偵錯記錄檔。
- 在編輯器中開啟路由器機器上的下列檔案:
/opt/nginx/conf.d/ORG_NAME_ENV_NAME_VIRTUALHOST_NAME.conf
例如:vi /opt/nginx/conf.d/ORG_NAME_ENV_NAME_VIRTUALHOST_NAME.conf
-
變更下列程式碼:
error_log /opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log info;
到
error_log /opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log error;
- 儲存變更。
- 執行 NGINX 重新載入指令。例如:
/opt/nginx/scripts/apigee-nginx reload
- 下列檔案現在只會擷取 error 記錄:
/opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log
- 如要停止多個路由器的偵錯記錄,請在每個路由器上重複執行這些步驟。
僅驗證錯誤資訊會記錄在 NGINX 錯誤記錄檔
- 在與特定虛擬主機設定相關聯的主機別名和通訊埠上提出 API 要求,或等待用戶端發出要求。
- 檢查下列檔案:
/opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log
- 請確定您只看到錯誤資訊,且系統不會再記錄要求的偵錯資訊。
- 如果系統仍記錄到其他偵錯資訊,請確認您已正確執行 停用路由器上特定虛擬主機的偵錯記錄中所述的所有步驟。如果錯過任何步驟,請再次正確重複所有步驟。
- 如果仍無法取得偵錯資訊,請與 Apigee Edge 支援團隊聯絡。