

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 故障排除 OpenSearch 仪表板
<a name="dashboards-troubleshooting"></a>

本节介绍可能导致 OpenSearch 仪表板不可用、无法加载或行为异常的已知问题。每个问题都包括您可以自行解决的操作。仪表板在您域中的热门数据节点上运行，并将其状态（索引模式、可视化和仪表板）存储在仪表板索引中 OpenSearch 。因此，大多数仪表板可用性问题可以追溯到集群运行状况、存储、 OpenSearch 仪表板索引迁移、集群或仪表板设置、资源限制或域的服务软件版本。

每个问题都按**症状**（您所看到的内容以及如何确认）、**根本原因**、**如何缓解**（自助服务步骤）和**建议的操作**（如何防止问题再次发生）进行组织。

**注意**  
许多已知的仪表板问题已在较新的服务软件版本中得到解决。在进一步排除故障之前，请打开 Amazon S OpenSearch ervic AWS e 控制台（服务的控制台，而不是控制 OpenSearch 面板用户界面），查看**通知**面板，然后安装最新的可用服务软件更新。以下几节将此列为建议的操作。如果配置更改或升级已在进行中，请等待其完成后再安装更新。

## 仪表板停留在 “服务器尚未准备就绪”（HTTP 503 未就绪错误）
<a name="dashboards-troubleshooting-not-ready"></a>

症状  
仪表板显示`OpenSearch Dashboards server is not ready yet`（HTTP 503 未就绪错误），但无法完成加载。每当该页面尚未完成启动时，仪表板就会显示该页面。在重启、升级或 blue/green 部署期间，简短版本是正常的，会自行清除。当问题持续存在时，将其视为问题。要缩小原因范围，请检查域的**集群运行状况**以及配置更改或升级是否正在进行中：  
+ 如果更改或升级正在进行中，则消息通常是暂时的；请等待域名恢复为 “**活动**”。
+ 如果集群运行状况为红色，则仪表板无法启动，因为它取决于集群；请先解决集群问题（请参阅[相关的集群和访问问题](#dashboards-troubleshooting-related)）。
+ 如果集群运行状况为绿色时该消息仍然存在，则很可能阻止了 OpenSearch 仪表板索引迁移（如下所述）。

根本原因  
在服务器的所有核心服务完成初始化之前，仪表板会报告 “服务器尚未准备就绪”，这就是为什么在启动和 blue/green 部署期间需要消息的临时版本的原因。当它在绿色集群中持续存在时，最常见的原因是 OpenSearch 仪表板索引的迁移被阻止：启动时，仪表板会将其保存的对象迁移到别名后面的新索引中，如果迁移无法完成，仪表板将永远无法准备就绪。受阻迁移的常见触发因素：  
+ 升级后，可能由于以下原因导致迁移受阻：
  + 先前版本遗留的 OpenSearch 仪表板索引会阻止创建新的别名。
  + 从仪表板未使用别名的旧引擎版本升级后会与现有索引发生冲突。
  + 由较新（自行管理）仪表板实例编写的文档无法自动迁移到目标版本。
+ 如果不进行升级，可能会因为以下原因导致迁移受阻：
  + 由用户界面请求或恢复创建的 OpenSearch 仪表板索引损坏会阻止别名。
  + 两个或多个版本控制 OpenSearch 仪表板索引指向同一个别名。即使集群生命值为绿色，它也可以以 `Internal Server Error` (HTTP 500) 的形式出现。
  + Per-user 或者每个租户的索引是在使用精细访问控制或 Amazon Cognito 身份验证的域上创建的，没有别名。
  + 由于文档损坏，无法应用已保存对象映射更改。

如何缓解  

1. 如果正在进行配置更改或版本升级，请等待域名恢复为 “**活动**”。该消息通常是短暂的，并且会自行清除。正常的更改或升级将在几个小时内完成。如果在域名恢复**活跃状态**超过 4 小时后，仪表板仍不可用，请将其视为持续存在的问题。继续执行以下步骤。（当域仍在处理更改时，您无法启动服务软件更新。）

1. 如果集群运行状况为红色或黄色，请先解决集群问题（请参阅[相关的集群和访问问题](#dashboards-troubleshooting-related)）。仪表板无法在运行状况不佳的集群上启动。

1. 如果集群运行状况为绿色时消息仍然存在，请收集一些只读诊断信息以帮助 AWS 支持部门更快地解决问题，然后联系[AWS 支持](https://aws.amazon.com/premiumsupport/)部门修复 OpenSearch 仪表板索引。根据您的情况，请包括以下命令的输出：

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

   修复被阻止的迁移是修复已经卡住的域名的方法。安装软件更新本身并不能解锁已经卡住的域名。不要自己删除 OpenSearch 仪表板索引。删除它会永久删除所有未在快照中备份的已保存的可视化效果、仪表板和索引模式。如果修复需要删除包含数据的索引，Su AWS pport 会先请求您的许可。对于已不可用超过一个小时且未进行配置更改的生产域，请以**生产系统受损**或更高的严重性提交 Support 案例。

1. 为防止再次发生，请使域名保持最新的服务软件更新；当前版本修复了迁移失败的常见原因。在域名恢复**活跃状态**后安装更新。

1. 在每次版本升级之前手动拍摄快照，以便在迁移失败时可以恢复已保存的对象。有关拍摄快照的更多信息，请参阅[在 Amazon OpenSearch 服务中创建索引快照](managedomains-snapshots.md)。

建议采取的措施  
将您的域名保持在最新的服务软件版本上，并在每次升级之前拍摄快照。如果您依赖仪表板进行生产监控，请考虑集中式[在 Amazon OpenSearch 服务中使用 OpenSearch 用户界面](application.md)，它与单个域的每个域的 OpenSearch 仪表板索引迁移无关。

## 仪表板无法加载并显示 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`以便仪表板可以执行其批量、mget 和 msearch 操作。

如何缓解  
在域名的高级选项`true`中`rest.action.multi.allow_explicit_index`重新设置为。这是您使用自己的 AWS 凭据在控制台（打开域，选择**编辑**并更新**高级集群设置**）或使用 AWS 命令行界面 (CL AWS I) 进行的管理平面更改：  

```
aws opensearch update-domain-config \
  --domain-name {{my-domain}} \
  --advanced-options rest.action.multi.allow_explicit_index=true
```
更改高级选项会触发 blue/green 部署，因此更改需要几分钟才能生效。有关高级集群设置的更多信息，请参阅[高级集群设置](createupdatedomains.md#createdomain-configure-advanced-options)。

建议采取的措施  
`false`除非您打算通过基于资源的策略限制索引访问权限，否则不要将其设置为`rest.action.multi.allow_explicit_index`。将其保留为默认值 (`true`) 可保持仪表板正常运行。

## 仪表板内存不足
<a name="dashboards-troubleshooting-oom"></a>

症状  
仪表板在负载下会重新启动、崩溃或无响应，尤其是在打开大型仪表板或加载许多已保存对象时。

根本原因  
仪表板进程耗尽了其可用内存，这通常是由于加载了太多保存的对象或渲染了繁重的仪表板。

如何缓解  

1. 安装最新的服务软件更新。当前版本会动态调整仪表板堆的大小，并删除了较早的固定大小限制。

1. 如果您在 **“高级设置” 中增加了`savedObjects:listingLimit`（默认`1000`），请**减少它。大值（例如）`10000`会导致内存不足错误。

1. 降低仪表板复杂性、面板数量和自动刷新频率。

1. 如果内存使用率长期居高不下，请扩展到具有更多内存的实例类型。有关调整域名大小的更多信息，请参阅[调整亚马逊 OpenSearch 服务域名的大小](sizing-domains.md)。

建议采取的措施  
要在 Dashboards 内存耗尽之前发现这一点，请注意`OpenSearchDashboardsHeapUtilization` CloudWatch 指标；如果指标持续超过 80%，请扩展到更大的实例类型。 Right-size 您的仪表板使用实例类型，保持仪表板精简，避免`savedObjects:listingLimit`超出您的需求。

## 由于有效载荷的大小，请求失败
<a name="dashboards-troubleshooting-payload"></a>

症状  
某些仪表板页面无法加载，因为请求负载超过了仪表板有效负载限制（`server.maxPayloadBytes`默认为 1 MB /1,048,576 字节）。

根本原因  
与大量索引或字段匹配的索引模式生成的请求大于有效负载限制。

如何缓解  

1. 减少请求大小，而不是提高限制：
   + 减少索引模式中的索引数量。
   + 减少字段的数量。
   + 减少字段名的长度。

1. [请联系AWS Support 申请受支持的账户级选项，该选项可保持增加的`server.maxPayloadBytes`价值，以便在 blue/green 部署和节点更换后仍然有效。](https://aws.amazon.com/premiumsupport/)此选项适用于所有支持的亚马逊 OpenSearch 服务版本。
不要试图通过自己编辑节点上的仪表板配置来提高此限制。 Node-level 更改不是永久性的。任何 blue/green部署或节点替换都会将其删除。请改用 Support 提供的 AWS 账户级别选项。

建议采取的措施  
将索引模式的范围限制在您实际使用的索引和字段范围内，以便请求保持在有效负载限制之内。

## 版本升级期间仪表板不可用
<a name="dashboards-troubleshooting-upgrade-downtime"></a>

症状  
在引擎版本升级部署 blue/green 的大部分时间里，仪表板都不可用。这是预期行为，不是故障，升级完成后它会自行解决。

根本原因  
在版本升级的大部分时间里，仪表板都保持离线状态，以避免新旧环境之间的版本检查竞争条件。

如何缓解  
等待升级完成；仪表板将自动恢复可用。将版本升级视为计划的仪表板维护窗口，并安排在关键业务时间以外的时间进行升级。有关配置更改的更多信息，请参阅[在 Amazon OpenSearch 服务中进行配置更改](managedomains-configuration-changes.md)。

建议采取的措施  
在流量较低的时段安排升级。如果您需要与单个域的升级窗口无关的仪表板可用性，请考虑集中式[在 Amazon OpenSearch 服务中使用 OpenSearch 用户界面](application.md)。

## 引擎版本升级未通过升级前检查，索引不兼容
<a name="dashboards-troubleshooting-upgrade-incompatible-index"></a>

症状  
在任何升级开始之前，您启动了引擎版本升级（或运行升级资格检查），但升级前检查失败。验证通知列出了一个或多个不兼容的索引，并且可以专门命名 OpenSearch 仪表板索引。当你升级到 OpenSearch 3.x 时，通常会发生这种情况，而域名仍有在 OpenSearch 1.3、Elasticsearch 7.10 或更早版本中创建的索引，包括仪表板索引。 OpenSearch （从 OpenSearch 1.3 或 2.x 升级必须先升级到 OpenSearch 2.19，然后再升级到 OpenSearch 3.x。）

根本原因  
OpenSearch 只能读取之前的主版本中的索引，因此 OpenSearch 3.x 不支持在 OpenSearch 1.3、Elasticsearch 7.10 或更早版本中创建的索引。升级前检查会阻止升级并故意列出这些索引，这样您就不会丢失任何数据。在主版本升级之前，您必须重新索引或删除较旧的索引；该服务不会自动为它们重新编制索引。 OpenSearch 仪表板索引遵循相同的规则。

如何缓解  

1. 运行升级资格检查以查看不兼容索引的完整列表（升级失败通知中包含相同的列表）。有关升级域名的更多信息，请参阅[升级 Amazon OpenSearch Service 域](version-migration.md)。

1. 在进行更改之前，请手动拍摄快照。有关拍摄快照的更多信息，请参阅[在 Amazon OpenSearch 服务中创建索引快照](managedomains-snapshots.md)。

1. 对于每个不兼容的数据索引，将其重新索引到新索引（在当前版本上创建），然后删除旧索引。对于 UltraWarm 冷索引，请先将其移至热存储，重新编制索引，然后将其移回去。

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

1. 对于 OpenSearch 仪表板索引，请先进行备份，因为它包含您的索引模式、可视化和仪表板：在仪表板中，转到**仪表板管理**、**保存的对象**，然后将其导出。然后删除不兼容的索引。升级后会自动创建新的兼容索引；之后重新导入保存的对象。如果您不想将其删除，请联系 Su [AWS pport](https://aws.amazon.com/premiumsupport/)。

1. 删除不再需要的任何不兼容的索引，而不是将其重新编入索引。

1. Re-run 资格检查，并在升级通过后重新触发升级。

建议采取的措施  
重新编制索引或停用旧索引，这样它们就不会跨越多个主要版本；在多次升级中留下的索引最终将阻止一个主要版本。每次升级前都要手动拍摄快照，并定期导出 OpenSearch 仪表板上保存的对象作为备份。

## 仪表板无法正常加载、显示空白页面或生成空白报告
<a name="dashboards-troubleshooting-blank-page"></a>

症状  
单个用户或浏览器会看到空白页面、空白报告或显示的红色横幅`OpenSearch Dashboards did not load properly. Check the server output for more information.`，而其他用户则不受影响。通过在私人（隐身）窗口或其他浏览器中复制来确认。

根本原因  
陈旧的浏览器缓存会导致此问题，尤其是在服务软件更新之后或使用报告功能时。

如何缓解  

1. 清除浏览器缓存和 Cookie，然后重新加载页面。尝试使用私有（隐身）窗口和支持的最新浏览器。

1. 禁用控制面板网址的广告拦截器或浏览器扩展程序。

1. 如果所有用户（而不仅仅是一个浏览器）的横幅仍然存在，请安装最新的服务软件更新，如果问题仍然存在，请与 Supp [AWS ort](https://aws.amazon.com/premiumsupport/) 联系 Support。

建议采取的措施  
服务软件更新后清除浏览器缓存，并使用支持的最新浏览器。

## 不支持的配置
<a name="dashboards-troubleshooting-unsupported-configs"></a>

请避免使用以下配置，这些配置是仪表板问题的常见根源：
+ **仪表板前面的反向代理（例如 nginx）仅支持访问控制，如中所**述。[使用代理从仪表板访问 OpenSearch 服务](dashboards.md#dashboards-proxy)如果您通过第三方代理软件运行仪表板并遇到意外错误，请在联系 AWS Support 之前在没有代理的情况下重现该问题。
+ **对节点配置文件的手动编辑不是永久性的。**任何 blue/green 部署或节点替换都会将其恢复。使用支持的设置和选项，而不是节点级编辑。您不能使用 SSH 访问节点或直接修改配置文件。

## 相关的集群和访问问题
<a name="dashboards-troubleshooting-related"></a>

由于仪表板依赖于运行良好的集群和域的访问配置，因此当仪表板不可用时，以下故障排除主题通常适用。有关所有这些，请参阅[对亚马逊 OpenSearch 服务进行故障排除](handling-errors.md)。
+ **无法访问 OpenSearch 控制面板**：访问策略和 Amazon Cognito 身份验证，包括`User: anonymous is not authorized to perform: es:ESHttpGet`错误和 VPC-access 请求超时。
+ **红色集群状态**和**黄色集群状态**：未分配的分片会阻止仪表板读取或写入其 OpenSearch 仪表板索引。
+ **ClusterBlockException**：存储空间不足或高的 JVM 内存压力会阻止写入，包括对 OpenSearch 仪表板索引的写入。
+ **JVM OutOfMemoryError** 和**请求限制**：集群过载显示为仪表板错误和响应。`429 Too Many Requests`