InsightIQ 生成 FSA 报告时出现“HTTP request timed out”(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。