InsightIQ "Przekroczono limit czasu żądania HTTP" lub puste podczas generowania raportów FSA
Summary: Interfejs użytkownika InsightIQ nie ładuje całości lub części raportu analizy systemu plików (FSA), jeśli limit czasu interfejsu programowania aplikacji (API) OneFS jest zbyt niski.
Symptoms
W InsightIQ od 4.0 do 4.2 i OneFS 8.0.x (lub nowszych wersjach) interfejs API RESTful OneFS zbiera dane raportu FSA. Jeśli InsightIQ nie jest w stanie zebrać tych danych, raport FSA może się nie załadować, może załadować się częściowo lub może nie zezwalać użytkownikom na nawigację po katalogach.
Cause
Problem występuje, gdy serwer InsightIQ zbyt wcześnie przekracza limit czasu wywołania interfejsu API dla OneFS.
Aby zweryfikować tę przyczynę, uruchom następujące polecenie (zastępując CLUSTER_GUID z odpowiednim katalogiem):
$ grep "HTTP request timed out" /var/log/insightiq_clusters/CLUSTER_GUID/api_connection.log
Zostaną wyświetlone dane wyjściowe podobne do następujących:
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
Zdefiniowana wartość limitu czasu jest widoczna po uruchomieniu następującego polecenia:
$ grep 'read timeout=' /var/log/insightiq.log
Dane wyjściowe wyglądają następująco. W tych przykładowych danych wyjściowych limit czasu wynosi 20 sekund:
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
Aby rozwiązać ten problem, zwiększ domyślny limit czasu dla wywołań interfejsu API do OneFS, edytując api.py programu NetWorker.
Uruchom to polecenie, aby edytować InsightIQ api.py serwera NetWorker Management Console (NMC):
$ sudo vi /usr/share/isilon/lib/python2.7/site-packages/insightiq/lib/api_connection/api.py
W wierszu 35 zmodyfikuj TIMEOUT = 20 na TIMEOUT = 300.
Następnie uruchom ponownie serwer InsightIQ:
$ sudo service insightiq restart
W przypadku InsightIQ 4.2 ścieżka jest następująca: /usr/share/isilon/lib/python3.10/site-packages/insightiq/lib/api_connection/api.py.