

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 故障診斷 OpenSearch Dashboards
<a name="dashboards-troubleshooting"></a>

本節說明可能導致 OpenSearch Dashboards 無法使用、無法載入或非預期行為的已知問題。每個問題都包含您可以自行解決的動作。儀表板會在您網域中的熱資料節點上執行，並在 OpenSearch Dashboards 索引中存放其狀態 （索引模式、視覺化和儀表板）。因此，大多數 Dashboards 可用性問題會回溯到叢集運作狀態、儲存體、OpenSearch Dashboards 索引遷移、叢集或 Dashboards 設定、資源限制或網域的服務軟體版本。

每個問題都會組織為**徵狀 **（您看到的內容以及如何確認）、**根本原因**、**如何緩解** （自助步驟） 和**建議的動作** （如何防止重複）。

**注意**  
許多已知的 Dashboards 問題已在較新的服務軟體版本中解決。在進一步疑難排解之前，請開啟 Amazon OpenSearch Service 主控台 （服務的 AWS 主控台，而非 OpenSearch Dashboards UI)、檢查**通知**面板，並安裝最新的可用服務軟體更新。以下幾個區段會將此列為建議的動作。如果組態變更或升級已在進行中，請等待它完成再安裝更新。

## 儀表板卡在「伺服器尚未就緒」(HTTP 503 尚未就緒錯誤）
<a name="dashboards-troubleshooting-not-ready"></a>

徵狀  
儀表板會顯示 `OpenSearch Dashboards server is not ready yet`(HTTP 503 未就緒錯誤） 且未完成載入。儀表板會在尚未完成啟動時顯示此頁面。在重新啟動、升級或藍/綠部署期間，簡短版本是正常的，並且會自行清除。當問題持續存在時，將其視為問題。若要縮小原因範圍，請檢查網域的**叢集運作**狀態，以及是否正在進行組態變更或升級：  
+ 如果變更或升級正在進行中，訊息通常是暫時性的；請等待網域返回**作用中**。
+ 如果叢集運作狀態為紅色，儀表板無法啟動，因為它取決於叢集；請先解決叢集問題 （請參閱 [相關叢集和存取問題](#dashboards-troubleshooting-related))。
+ 如果訊息在叢集運作狀態為綠色時仍存在，則 OpenSearch Dashboards 索引遷移很可能遭到封鎖 （如下所述）。

根本原因  
Dashboards 會報告「伺服器尚未就緒」，直到其所有核心服務完成初始化為止，這就是為什麼在啟動和藍/綠部署期間預期會發生暫時性的訊息版本。當它持續使用綠色叢集時，最常見的原因是 OpenSearch Dashboards 索引的遷移遭到封鎖：在啟動時， Dashboards 會將其儲存的物件遷移到別名後方的新索引，如果遷移無法完成，則 Dashboards 永遠不會就緒。封鎖遷移的常見觸發條件：  
+ 升級之後，可能會發生封鎖的遷移，原因如下：
  + 先前版本剩餘的 OpenSearch Dashboards 索引可防止建立新的別名。
  + 從儀表板未使用別名的舊引擎版本升級與現有索引衝突。
  + 由較新 （自我管理） Dashboards 執行個體撰寫的文件無法自動遷移至目標版本。
+ 如果沒有升級，可能會發生封鎖的遷移，原因如下：
  + UI 請求或還原建立的受損 OpenSearch Dashboards 索引會封鎖別名。
  + 兩個或多個版本控制的 OpenSearch Dashboards 索引會指向相同的別名。即使叢集運作狀態為綠色，這也可以顯示為 `Internal Server Error`(HTTP 500)。
  + 每個使用者或每個租用戶索引是在使用精細存取控制或 Amazon Cognito 身分驗證的網域上建立的，沒有別名。
  + 由於文件損壞，無法套用已儲存物件映射變更。

如何緩解  

1. 如果組態變更或版本升級正在進行中，請等待網域返回**作用中**。訊息通常是暫時性的，並且會自行清除。正常的變更或升級會在幾個小時內完成。如果儀表板在網域返回 **Active** 超過 4 小時後仍無法使用，請將它視為持久性問題。繼續執行下列步驟。（當網域仍在處理變更時，您無法啟動服務軟體更新。)

1. 如果叢集運作狀態為紅色或黃色，請先解決叢集問題 （請參閱 [相關叢集和存取問題](#dashboards-troubleshooting-related))。儀表板無法在運作狀態不佳的叢集上啟動。

1. 如果訊息在叢集運作狀態為綠色時持續存在，請收集一些唯讀診斷，以協助 AWS Support 更快解決問題，然後聯絡 [AWS Support](https://aws.amazon.com/premiumsupport/) 修復 OpenSearch Dashboards 索引。在您的案例中包含下列命令的輸出：

   ```
   GET _cat/aliases/.kibana*?v
   GET _cat/indices/.kibana*?v
   ```

   修復封鎖的遷移是已存放網域的修正。安裝軟體更新本身不會解除封鎖已停滯的網域。請勿自行刪除 OpenSearch Dashboards 索引。將其刪除會永久移除快照中未備份的所有已儲存視覺效果、儀表板和索引模式。如果修復需要刪除包含資料的索引， AWS Support 會先請求您的許可。對於超過一小時沒有組態變更而無法使用的生產網域，請開啟嚴重性為**生產系統受損**或更高的支援案例。

1. 為了防止再次發生，請將網域保持在最新的服務軟體更新上；目前的版本會修正遷移失敗的常見原因。在網域返回 **Active** 之後安裝更新。

1. 每次版本升級之前，請手動建立快照，以便在遷移失敗時還原已儲存的物件。如需拍攝快照的詳細資訊，請參閱 [在 Amazon OpenSearch Service 中建立索引快照](managedomains-snapshots.md)。

建議動作  
將您的網域保留在目前的服務軟體版本上，並在每次升級之前拍攝快照。如果您依賴 Dashboards 進行生產監控，請考慮集中式 [在 Amazon OpenSearch Service 中使用 OpenSearch UI](application.md)，這不會繫結至單一網域的每個網域 OpenSearch Dashboards 索引遷移。

## 儀表板無法載入並顯示 allow\_explicit\_index 訊息
<a name="dashboards-troubleshooting-allow-explicit-index"></a>

徵狀  
儀表板無法載入並顯示類似下列的訊息：  

```
Kibana must be able to specify the index within Elasticsearch multi-requests (rest.action.multi.allow_explicit_index=true).
```

根本原因  
`rest.action.multi.allow_explicit_index` 進階叢集選項設定為 `false`。將此選項設定為 ，`true`以便 Dashboards 可以執行其大量、mget 和 msearch 操作。

如何緩解  
在網域的進階選項`true`中將 設`rest.action.multi.allow_explicit_index`回 。這是您在主控台 （開啟網域、選擇**編輯**和更新**進階叢集設定**) 或使用 AWS 命令列界面 (AWS CLI) 使用您自己的 AWS 登入資料進行的管理平面變更：  

```
aws opensearch update-domain-config \
  --domain-name {{my-domain}} \
  --advanced-options rest.action.multi.allow_explicit_index=true
```
變更進階選項會觸發藍/綠部署，因此變更需要幾分鐘的時間才能套用。如需進階叢集設定的詳細資訊，請參閱 [進階叢集設定](createupdatedomains.md#createdomain-configure-advanced-options)。

建議動作  
除非您打算透過以資源為基礎的政策限制索引存取，`false`否則請勿`rest.action.multi.allow_explicit_index`將 設定為 。將其保留在預設 (`true`) 可保持 Dashboards 運作。

## 儀表板記憶體不足
<a name="dashboards-troubleshooting-oom"></a>

徵狀  
儀表板會在載入時重新啟動、當機或變得沒有回應，尤其是在開啟大型儀表板或載入許多已儲存物件時。

根本原因  
Dashboards 程序會耗盡其可用的記憶體，通常不會載入太多儲存的物件或轉譯繁重的儀表板。

如何緩解  

1. 安裝最新的服務軟體更新。目前的版本會動態調整儀表板堆積的大小，並移除較舊的固定大小限制。

1. 如果您在**進階設定**中增加 `savedObjects:listingLimit`（預設 `1000`)，請將其減少。大型值，例如 `10000`，已造成out-of-memory錯誤。

1. 降低儀表板複雜性、面板數量和自動重新整理頻率。

1. 如果記憶體用量長期很高，請擴展到具有更多記憶體的執行個體類型。如需調整網域大小的詳細資訊，請參閱[調整 Amazon OpenSearch Service 網域的大小](sizing-domains.md)。

建議動作  
若要在 Dashboards 用盡記憶體之前攔截此問題，請監看 `OpenSearchDashboardsHeapUtilization` CloudWatch 指標；如果持續超過 80%，請擴展至較大的執行個體類型。為您的 Dashboards 使用量調整適當大小的執行個體類型、保持儀表板精簡，並避免`savedObjects:listingLimit`超出您的需求。

## 由於承載大小，請求失敗
<a name="dashboards-troubleshooting-payload"></a>

徵狀  
某些 Dashboards 頁面無法載入，因為請求承載超過 Dashboards 承載限制 (`server.maxPayloadBytes`預設為 1 MB/1，048，576 位元組）。

根本原因  
符合非常大量的索引或欄位的索引模式會產生大於承載限制的請求。

如何緩解  

1. 減少請求大小，而不是提高限制：
   + 減少索引模式中的索引數量。
   + 減少欄位數量。
   + 減少欄位名稱長度。

1. 請聯絡 [AWS Support](https://aws.amazon.com/premiumsupport/) 請求支援的帳戶層級選項，該選項會持續增加`server.maxPayloadBytes`值，因此可以承受藍/綠部署和節點替換。此選項適用於所有支援的 Amazon OpenSearch Service 版本。
請勿嘗試自行編輯節點上的儀表板組態來提高此限制。節點層級變更並非持久性。任何藍/綠部署或節點替換都會將其移除。請改透過 AWS Support 使用帳戶層級選項。

建議動作  
將索引模式範圍維持在您實際使用的索引和欄位範圍內，讓請求保持在承載限制內。

## 儀表板在版本升級期間無法使用
<a name="dashboards-troubleshooting-upgrade-downtime"></a>

徵狀  
儀表板在引擎版本升級藍/綠部署的大部分期間都無法使用。這是預期的行為，不是錯誤，而且會在升級完成時自行解決。

根本原因  
對於大多數版本升級，儀表板會保持離線狀態，以避免舊環境和新環境之間的版本檢查競爭條件。

如何緩解  
等待升級完成；儀表板會自動再次可用。將版本升級視為規劃的 Dashboards 維護時段，並在關鍵營業時間之外排程。如需組態變更的詳細資訊，請參閱 [在 Amazon OpenSearch Service 中進行組態變更](managedomains-configuration-changes.md)。

建議動作  
在低流量時段期間排程升級。如果您需要未繫結至單一網域升級時段的儀表板可用性，請考慮集中式 [在 Amazon OpenSearch Service 中使用 OpenSearch UI](application.md)。

## 引擎版本升級未通過具有不相容索引的升級前檢查
<a name="dashboards-troubleshooting-upgrade-incompatible-index"></a>

徵狀  
您啟動引擎版本升級 （或執行升級資格檢查），並在任何升級開始之前，於升級前檢查失敗。驗證通知會列出一或多個不相容的索引，並可特別命名 OpenSearch Dashboards 索引。這通常會在您升級至 OpenSearch 3.x 時發生，而網域仍然在 OpenSearch 1.3、Elasticsearch 7.10 或更早版本中建立索引，包括 OpenSearch Dashboards 索引。（從 OpenSearch 1.3 或 2.x 的升級必須先移至 OpenSearch 2.19，然後移至 OpenSearch 3.x。)

根本原因  
OpenSearch 只能從先前的主要版本讀取索引，因此 OpenSearch 3.x 不支援在 OpenSearch 1.3、Elasticsearch 7.10 或更早版本中建立的索引。升級前檢查會封鎖升級，並依用途列出這些索引，因此您不會遺失任何資料。在主要版本升級之前，您必須重新索引或移除較舊的索引；服務不會自動重新索引它們。OpenSearch Dashboards 索引遵循相同的規則。

如何緩解  

1. 執行升級資格檢查以查看不相容索引的完整清單 （相同的清單位於升級失敗通知中）。如需升級網域的詳細資訊，請參閱 [升級 Amazon OpenSearch Service 網域](version-migration.md)。

1. 在進行變更之前先手動拍攝快照。如需拍攝快照的詳細資訊，請參閱 [在 Amazon OpenSearch Service 中建立索引快照](managedomains-snapshots.md)。

1. 對於每個不相容的資料索引，將其重新索引為新索引 （在目前版本上建立），然後刪除舊索引。對於 UltraWarm 或冷索引，請先將其移至熱儲存，重新索引，然後將它們移回。

   ```
   POST _reindex
   { "source": { "index": "my-old-index" }, "dest": { "index": "my-new-index" } }
   ```

1. 對於 OpenSearch Dashboards 索引，請先備份，因為它會保留您的索引模式、視覺化和儀表板：在儀表板中，前往**儀表板管理**、**儲存的物件**，然後匯出它們。然後刪除不相容的索引。升級後會自動建立新的相容索引；之後會重新匯入您儲存的物件。如果您不想刪除它，請聯絡 [AWS Support](https://aws.amazon.com/premiumsupport/)。

1. 刪除您不再需要的任何不相容索引，而不是重新編製索引。

1. 重新執行資格檢查，並在升級通過後重新觸發升級。

建議動作  
重新索引或淘汰舊索引，使其不會跨越多個主要版本；在多個升級中留下的索引最終會封鎖一個。每次升級之前手動拍攝快照，並定期匯出 OpenSearch Dashboards 儲存的物件做為備份。

## 儀表板無法正常載入、顯示空白頁面或產生空白報告
<a name="dashboards-troubleshooting-blank-page"></a>

徵狀  
單一使用者或瀏覽器會看到空白頁面、空白報告或讀取 的紅色橫幅`OpenSearch Dashboards did not load properly. Check the server output for more information.`，而其他使用者則不受影響。在私有 (incognito) 視窗或其他瀏覽器中重新產生以確認。

根本原因  
過時瀏覽器快取會導致此問題，尤其是在服務軟體更新後或使用報告功能時。

如何緩解  

1. 清除瀏覽器快取和 Cookie，然後重新載入頁面。嘗試私有 (incognito) 視窗和支援up-to-date瀏覽器。

1. 停用儀表板 URL 的廣告封鎖程式或瀏覽器延伸。

1. 如果所有使用者 （不只是一個瀏覽器） 仍存在橫幅，請安裝最新的服務軟體更新，如果問題持續發生，請聯絡 [AWS Support](https://aws.amazon.com/premiumsupport/)。

建議動作  
在服務軟體更新後清除您的瀏覽器快取，並使用支援up-to-date瀏覽器。

## 不支援的組態
<a name="dashboards-troubleshooting-unsupported-configs"></a>

避免這些組態，這是 Dashboards 問題的常見來源：
+ **Dashboards 前方的反向代理 （例如 nginx) 僅支援存取控制**，如中所述[使用代理伺服器從 Dashboards 中存取 OpenSearch Service](dashboards.md#dashboards-proxy)。如果您透過第三方代理軟體執行 Dashboards 並遇到意外錯誤，請在聯絡 AWS Support 之前在沒有代理的情況下重現問題。
+ **對節點組態檔案的手動編輯並非持久性。**任何藍/綠部署或節點替換都會將其還原。使用支援的設定和選項，而非節點層級編輯。您無法使用 SSH 存取節點或直接修改組態檔案。

## 相關叢集和存取問題
<a name="dashboards-troubleshooting-related"></a>

由於 Dashboards 取決於運作狀態良好的叢集和網域的存取組態，因此當 Dashboards 無法使用時，經常會套用下列疑難排解主題。如需這些詳細資訊，請參閱 [Amazon OpenSearch Service 疑難排解](handling-errors.md)。
+ **無法存取 OpenSearch Dashboards**：存取政策和 Amazon Cognito 身分驗證，包括`User: anonymous is not authorized to perform: es:ESHttpGet`錯誤和 VPC 存取請求逾時。
+ **紅色叢集狀態**和**黃色叢集狀態**：未指派的碎片會阻止 Dashboards 讀取或寫入其 OpenSearch Dashboards 索引。
+ **ClusterBlockException**：低儲存空間或高 JVM 記憶體壓力區塊寫入，包括寫入 OpenSearch Dashboards 索引。
+ **JVM OutOfMemoryError** **和請求限流**：叢集過載表面作為儀表板錯誤和`429 Too Many Requests`回應。