InsightIQ "HTTP request timedout" o vuoto durante la generazione di report FSA
Summary: L'interfaccia utente di InsightIQ non riesce a caricare tutto o parte di un report FSA (File System Analytics) se il timeout dell'API (Application Programming Interface) di OneFS è troppo basso. ...
Symptoms
In InsightIQ da 4.0 a 4.2 e OneFS 8.0.x (o versioni successive), l'API RESTful di OneFS raccoglie i dati dei report FSA. Se InsightIQ non è in grado di raccogliere questi dati, il report FSA potrebbe non caricarsi, caricarsi parzialmente o potrebbe non consentire agli utenti di navigare nelle directory.
Cause
Il problema si verifica quando il server InsightIQ determina il timeout della chiamata API a OneFS troppo presto.
Per convalidare questa causa, eseguire il seguente comando (sostituendo CLUSTER_GUID con la directory appropriata):
$ grep "HTTP request timed out" /var/log/insightiq_clusters/CLUSTER_GUID/api_connection.log
Viene visualizzato un output simile al seguente:
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
Il valore di timeout definito viene visualizzato eseguendo questo comando:
$ grep 'read timeout=' /var/log/insightiq.log
L'output è simile al seguente. In questo output di esempio, il timeout è di 20 secondi:
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
Per risolvere il problema, aumentare il timeout predefinito per le chiamate API a OneFS modificando la proprietà api.py di NetWorker.
Utilizzare questo comando per modificare InsightIQ api.py del server NetWorker Management Console (NMC):
$ sudo vi /usr/share/isilon/lib/python2.7/site-packages/insightiq/lib/api_connection/api.py
Alla riga 35, modificare TIMEOUT = 20 su TIMEOUT = 300.
Quindi riavviare il server InsightIQ:
$ sudo service insightiq restart
Per InsightIQ 4.2, il percorso è /usr/share/isilon/lib/python3.10/site-packages/insightiq/lib/api_connection/api.py.