產生 FSA 報告時,InsightIQ「HTTP 要求逾時」或空白
Summary: 如果 OneFS 應用程式發展介面 (API) 逾時過短,InsightIQ UI 將無法載入全部或部分檔案系統分析 (FSA) 報告。
Symptoms
在 InsightIQ 4.0 至 4.2 和 OneFS 8.0.x (或更新版本) 中,OneFS RESTful API 會收集 FSA 報告資料。如果 InsightIQ 無法收集此資料,FSA 報告可能無法載入、可能部分載入,或不允許使用者瀏覽目錄。
Cause
當 InsightIQ 伺服器過早地將 OneFS 的 API 呼叫逾時時,就會發生此問題。
若要驗證此原因,請執行下列命令 (替換 CLUSTER_GUID 使用正確的目錄):
$ grep "HTTP request timed out" /var/log/insightiq_clusters/CLUSTER_GUID/api_connection.log
將顯示類似於以下內容的輸出:
2017-06-12 13:07:50,114,114 ERROR [api.py: 187] HTTP request timed out: https://172.22.33.27:8080/platform/3/fsa/results/4505/directories/4321902598 2017-06-12 13:08:13,782,782 ERROR [api.py: 187] HTTP request timed out: https://172.22.33.27:8080/platform/3/fsa/results/4505/directories/4321902598
執行此命令可看到定義的逾時值:
$ grep 'read timeout=' /var/log/insightiq.log
輸出結果如下所示。在此範例輸出中,逾時為 20 秒:
2018-04-12 04:18:30,203 WARNI [insightiq.lib.cluster.errors] APITimedOutError: HTTPSConnectionPool(host='10.104.6.138', port=8080): Read timed out. (read timeout=20) URI: https://10.104.6.138:8080/platform/3/statistics/history
Resolution
若要解決此問題,請編輯 api.py 檔案中所定義。
執行此命令以編輯 InsightIQ api.py 檔案:
$ sudo vi /usr/share/isilon/lib/python2.7/site-packages/insightiq/lib/api_connection/api.py
在第 35 行,修改 TIMEOUT = 20 的輸出傳送至 TIMEOUT = 300。
然後重新啟動 InsightIQ 伺服器:
$ sudo service insightiq restart
針對 InsightIQ 4.2,路徑為 /usr/share/isilon/lib/python3.10/site-packages/insightiq/lib/api_connection/api.py。