

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

# 对 SiteWise 边缘网关进行故障排除
<a name="troubleshooting-gateway"></a>

浏览相关主题，解决常见的 AWS IoT SiteWise Edge 网关问题。

您还可以查看 SiteWise Edge 网关报告的 CloudWatch 指标，以解决连接或数据流问题。有关更多信息，请参阅 [AWS IoT SiteWise 使用 Amazon CloudWatch 指标进行监控](monitor-cloudwatch-metrics.md)。

**Topics**
+ [配置和访问 SiteWise Edge 网关日志](#configure-gateway-logs)
+ [排除 SiteWise Edge 网关问题](#troubleshoot-gateway-issues)
+ [对 AWS IoT SiteWise Edge 应用程序进行故障排除 Siemens Industrial Edge](#troubleshoot-siemens-app)
+ [边缘开源集成疑难解答](#open-source-troubleshooting)
+ [疑难解答 AWS IoT Greengrass 问题](#troubleshoot-greengrass-issues)

## 配置和访问 SiteWise Edge 网关日志
<a name="configure-gateway-logs"></a>

在查看 SiteWise Edge 网关日志之前，必须将 SiteWise Edge 网关配置为将日志发送到 Amazon CloudWatch Logs 或将日志存储在本地文件系统上。
+ 如果您想使用 CloudWatch AWS 管理控制台 来查看 SiteWise Edge 网关的日志文件，请使用日志。有关更多信息，请参阅 [使用 Amazon CloudWatch 日志](gateway-cloudwatch-logs.md)。
+ 如果您想使用命令行或本地软件查看 SiteWise Edge 网关的日志文件，请使用本地文件系统日志。有关更多信息，请参阅 [使用服务登录 AWS IoT SiteWise](gateway-local-logs.md)。

## 排除 SiteWise Edge 网关问题
<a name="troubleshoot-gateway-issues"></a>

使用以下信息对 SiteWise Edge 网关问题进行故障排除。

**Topics**
+ [无法将包部署到 SiteWise Edge 网关](#gateway-issue-ggv2-packs)
+ [AWS IoT SiteWise 无法从 OPC UA 服务器接收数据](#gateway-issue-data-streams)
+ [控制面板中未显示任何数据](#gateway-issue-no-data)
+ [aws.iot 中显示 “找不到或加载主类”。 SiteWiseEdgePublisher 在/ greengrass/v2/logs 错误处登录](#troubleshoot-java-issues)
+ [我看见了 “SESSION\_TAKEN\_OVER” 或 “com.aws.greengrass.mqttclient”。 MqttClient: 无法通过 Spooler 发布消息，将重试。' ”](#sa-troubleshoot-multiple-use)
+ [我看到了 'com.aws.greengrass.deployment。 IotJobsHelper: 未找到部署作业。' 或“Deployment result already reported. ”](#sa-troubleshoot-reuse)
+ [尝试在 OPC UA 数据源的属性组中配置时间戳设置时，我看到 “SYNC\_FAILED” 状态](#troubleshoot-gateway-sync-failed-timestamp)
+ [不包括转换后的数据类型](#troubleshoot-data-conversion)
+ [信任商店问题](#troubleshoot-trust-stores)
+ [支持代理的安装问题](#troubleshoot-proxy-during-installation)

### 无法将包部署到 SiteWise Edge 网关
<a name="gateway-issue-ggv2-packs"></a>

如果 n AWS IoT Greengrass ucleus 组件 (`aws.greengrass.Nucleus`) 已过期，则可能无法将包部署到您的 SiteWise Edge 网关。您可以使用 AWS IoT Greengrass V2 控制台升级 n AWS IoT Greengrass ucleus 组件。

**升级 n AWS IoT Greengrass ucleus 组件（控制台）**

1. 导航至 [AWS IoT Greengrass 控制台](https://console.aws.amazon.com/greengrassIntro)。

1. 在导航窗格的 **AWS IoT Greengrass** 下，选择**部署**。

1. 在**部署**列表中，选择要修改的部署。

1. 选择**修订**。

1. 在**指定目标**页面，选择**下一步**。

1. 在**选择组件**页面上**公共组件**下的搜索框中，输入 **aws.greengrass.Nucleus**，然后选择 **aws.greengrass.Nucleus**。

1. 选择**下一步**。

1. 在**配置组件**页面上，选择**下一步**。

1. 在**配置高级设置**页面上，选择**下一步**。

1. 在 **检查** 页上，选择 **部署**。

### AWS IoT SiteWise 无法从 OPC UA 服务器接收数据
<a name="gateway-issue-data-streams"></a>

如果您的 AWS IoT SiteWise 资产未接收 OPC UA 服务器发送的数据，则可以搜索 SiteWise Edge 网关的日志来解决问题。查找包含以下消息的信息级别 `swPublisher` 日志。

```
Emitting diagnostic name=PublishError.{{SomeException}}
```

根据日志{{SomeException}}中的类型，使用以下异常类型和相应的问题对您的 SiteWise Edge 网关进行故障排除：
+ **ResourceNotFoundException**— 您的 OPC UA 服务器发送的数据与任何资产的属性别名都不匹配。在以下两种情况下，可能会发生此异常：
  + 您的属性别名与 OPC UA 变量不完全匹配，包括您定义的任何源前缀。检查属性别名和源前缀是否正确。
  + 您尚未将 OPC UA 变量映射到资产属性。有关更多信息，请参阅 [管理数据流 AWS IoT SiteWise](manage-data-streams.md)。

    如果您已经映射了想要输入的所有 OPC UA 变量 AWS IoT SiteWise，则可以筛选 SiteWise Edge 网关发送了哪些 OPC UA 变量。有关更多信息，请参阅 [在 SiteWise Edge 中使用 OPC UA 节点过滤器](opc-ua-node-filters.md)。
+ **InvalidRequestException**— 您的 OPC UA 变量数据类型与您的资产属性数据类型不匹配。例如，如果 OPC UA 变量具有整数数据类型，相应的资产属性则必须是整数数据类型。双精度类型的资产属性不能接收 OPC UA 整数值。要解决此问题，请使用正确的数据类型定义新属性。
+ **TimestampOutOfRangeException**— 您的 SiteWise Edge 网关正在发送超出可 AWS IoT SiteWise 接受范围的数据。 AWS IoT SiteWise 拒绝过去时间戳早于 7 天或将来 5 分钟以上的任何数据点。如果您的 SiteWise Edge 网关断电或与 AWS 云的连接中断，则可能需要清除 SiteWise Edge 网关的缓存。
+ **ThrottlingException**或者 **LimitExceededException**— 您的请求超出了 AWS IoT SiteWise 服务配额，例如提取的数据点速率或资产属性数据 API 操作的请求速率。检查您的配置是否未超过 [AWS IoT SiteWise 配额](endpoints-and-quotas.md#quotas)。

### 控制面板中未显示任何数据
<a name="gateway-issue-no-data"></a>

如果您的控制面板中没有显示任何数据，则 SiteWise Edge 网关的**发布器配置**和 Dat **a Sour** ce 可能不同步。如果二者不同步，更新数据来源名称可能会加快从云端到边缘的同步，从而修复不同步错误。

**要更新数据来源的名称，请按以下步骤操作：**

1. 导航至 [AWS IoT SiteWise 控制台](https://console.aws.amazon.com/iotsitewise/)。

1. 在导航窗格中，选择 **Edge 网关**。

1. 选择连接到仪表板的 SiteWise Edge 网关。

1. 在**数据来源**下，选择**编辑**。

1. 选择一个新的源**名称**，然后选择**保存**以确认您的更改。

1. 确认**数据来源**表中的数据来源名称已更新，以验证您的更改。

### aws.iot 中显示 “找不到或加载主类”。 SiteWiseEdgePublisher 在/ greengrass/v2/logs 错误处登录
<a name="troubleshoot-java-issues"></a>

如果您看到此错误，则可能需要更新 SiteWise Edge 网关的 Java 版本。
+ 从终端设备运行以下命令：

  ```
  java -version
  ```

  您的 SiteWise Edge 网关所运行的 java 版本将显示在下面`OpenJDK Runtime Environment`。您会看到如下响应：

  ```
  openjdk version "11.0.20" 2023-07-18 LTS
  OpenJDK Runtime Environment Corretto011.0.20.8.1 (build 11.0.20+8-LTS
  OpenJDK 64-Bit Server VM Corretto-11.0.20.8.1 (build 11.0.20+8-LTS, mixed node)
  ```

如果你运行的是 Java 版本 11.0.20.8.1，则必须将 IoT P SiteWise ublisher 包更新到 2.4.1 或更高版本。只有 java 版本 11.0.20.8.1 受到影响，具有其他 Java 版本的环境可以继续使用旧版本的 IoT SiteWise Publisher 组件。有关更新组件包的更多信息，请参阅[更改 SiteWise Edge 网关组件包的版本](manage-gateways-ggv2.md#manage-gateway-update-packs)。

### 我看见了 “SESSION\_TAKEN\_OVER” 或 “com.aws.greengrass.mqttclient”。 MqttClient: 无法通过 Spooler 发布消息，将重试。' ”
<a name="sa-troubleshoot-multiple-use"></a>

如果您在的日志`com.aws.greengrass.mqttclient.MqttClient: Failed to publish the message via Spooler and will retry.`中看到包含的警告`SESSION_TAKEN_OVER`或包含错误的信息`/greengrass/v2/logs/greengrass.log`，则可能是您正在尝试对多台设备上的多个 SiteWise Edge 网关使用相同的配置文件。每个 SiteWise Edge 网关都需要一个唯一的配置文件才能连接到您的 AWS 账户。

### 我看到了 'com.aws.greengrass.deployment。 IotJobsHelper: 未找到部署作业。' 或“Deployment result already reported. ”
<a name="sa-troubleshoot-reuse"></a>

如果您在 `/greengrass/v2/logs/greengrass.log` 的日志中看到 `com.aws.greengrass.deployment.IotJobsHelper: No deployment job found.` 或 `Deployment result already reported.`，则您可能正在尝试重复使用相同的配置文件。

这种情况有多种解决方案：
+ 要重复使用此配置文件，请执行以下操作：

  1. <a name="sitewise-open-console"></a>导航至 [AWS IoT SiteWise 控制台](https://console.aws.amazon.com/iotsitewise/)。

  1. 在导航窗格中，选择 **Edge 网关**。

  1. 选择要重复使用的 SiteWise Edge 网关。

  1. 选择**更新**选项卡。

  1. 选择其他发布者版本，然后选择**部署**。

按照 [为 Siemens Industrial Edge 创建网关](sa-create-config.md) 中的步骤创建新的配置文件。

### 尝试在 OPC UA 数据源的属性组中配置时间戳设置时，我看到 “SYNC\_FAILED” 状态
<a name="troubleshoot-gateway-sync-failed-timestamp"></a>

在 AWS IoT SiteWise 更新 2.5.0 版本的 OPC UA 收集器组件时，我们引入了一个新的时间戳配置选项。 AWS IoT Greengrass 您可以使用设备上的时间戳，也可以使用服务器上的时间戳。旧版本的 OPC UA 收集器组件不支持此选项，因此无法同步。

有两种方法可以解决数据源同步失败的状态。推荐的方法是将 IoT SiteWise OPC UA 收集器组件升级到 2.5.0 或更高版本。或者，如果您将时间戳设置为，则可以继续使用较旧的 OPC UA 收集器组件版本。`Source`要了解如何升级 IoT SiteWise OPC UA 收集器组件，请参阅[更新 AWS IoT SiteWise 组件的版本](manage-gateways-ggv2.md#update-component-version)。我们建议使用所有组件的最新版本。

**注意**  
当数据源同步状态失败时，不会出现数据中断。源数据继续流入 AWS IoT SiteWise。配置根本没有与部署中的 IoT SiteWise OPC UA 收集器组件同步。 AWS IoT Greengrass V2 

**更改属性组的时间戳配置**

1. <a name="sitewise-open-console"></a>导航至 [AWS IoT SiteWise 控制台](https://console.aws.amazon.com/iotsitewise/)。

1. 在导航窗格中，选择 **Edge 网关**。

1. 选择要编辑的网关。

1. 在**数据源**部分，选择同步失败状态的数据源，然后选择**编辑**。

1. 展开**高级配置**，然后展开**群组设置**。

1. 在**时间戳**中，选择**来源**。选择 S **ourc** e 会将该`timestampToReturn`属性从配置中删除。默认情况下，此设置允许从您的设备收集数据源时间戳，从而允许数据源与 IoT SiteWise OPC UA 收集器组件同步。

1. 选择**保存**。

### 不包括转换后的数据类型
<a name="troubleshoot-data-conversion"></a>

如果您在将不支持的 OPC UA 数据类型转换为字符串时看到错误 AWS IoT SiteWise，可能有以下几个原因：
+ 您尝试转换的数据类型是复杂数据类型。不支持复杂数据类型。
+ 将**目标**用于**使用 Amazon S3 进行AWS IoT SiteWise 缓冲**时，完整字符串值会保留在推送到 Amazon S3 存储桶的文件中。稍后向中提取数据时 AWS IoT SiteWise，长度超过 1024 字节的完整字符串值将被拒绝。

### 信任商店问题
<a name="troubleshoot-trust-stores"></a>

如果您在 SiteWise Edge 中遇到与信任存储相关的问题，请考虑以下故障排除步骤：
+ 验证 AWS IoT Greengrass 根 CA 证书在相应的信任存储中是否存在且格式正确
+ 确保 Java KeyStore 密码设置正确，并且 SiteWise Edge 组件可以访问
+ 检查所有自定义证书（例如 HTTPS 代理）的格式是否正确（通常为 PEM）并正确导入到信任存储库中
+ 确认信任存储库具有正确的文件权限并且 SiteWise Edge 进程可以访问
+ 查看 SiteWise Edge 日志中是否存在任何 SSL/TLS 相关错误，这些错误可能表明存在信任存储问题
+ 使用诸如验证信任存储库功能`openssl`之类的工具独立测试 SSL/TLS 连接

### 支持代理的安装问题
<a name="troubleshoot-proxy-during-installation"></a>

如果您在代理配置过程中遇到问题，请考虑以下故障排除步骤：
+ 验证代理 URL 的格式是否正确且包含正确的架构（`http://`或`https://`）
+ 如果任何代理凭证包含特殊字符，请确保它们都经过网址编码
+ 确认无代理列表包含所有必需的本地地址和 AWS 服务端点
+ 对于 HTTPS 代理，请验证所提供的 CA 证书是否为 PEM 格式
+ 查看安装日志，了解可能表明问题根源的特定错误消息
+ 独立测试代理连接以确保其正常运行

## 对 AWS IoT SiteWise Edge 应用程序进行故障排除 Siemens Industrial Edge
<a name="troubleshoot-siemens-app"></a>

要对Siemens Industrial Edge设备上的 AWS IoT SiteWise Edge 应用程序进行故障排除，您可以通过Siemens Industrial Edge Management或Siemens Industrial Edge设备 (IED) 门户访问该应用程序的日志。有关更多信息，请参阅 Siemens 文档中的[下载日志](https://docs.eu1.edge.siemens.cloud/build_a_device/device_building/concepts/howto-download-edge-device-logs.html)。

### 我的数据未显示在 AWS IoT SiteWise
<a name="w2aac51b7c19b7"></a>
+ 确保您的 Databus 用户没有任何问题，并且 **Databus\_Configuration** 的对勾图标为绿色，而非灰色。
+ 您当前运行的 Siemens Industrial Edge Management 版本可能不包含 Secure Storage 功能。请升级您的 Siemens 操作系统版本。有关更多信息，请参阅 [Siemens Secure Storage和 AWS IoT SiteWise Edge 应用程序](sitewise-edge-on-siemens.md#sa-secure-storage)。

### 我在日志中看到 “缺少配置文件 AWS\_REGION”
<a name="sa-corrupt-json"></a>

如果您在 Siemens 日志中看到 `Config file missing AWS_REGION`，则该配置文件的 JSON 已损坏。您将需要创建一个新的配置文件。按照 [为 Siemens Industrial Edge 创建网关](sa-create-config.md) 中的步骤创建新的配置文件。

### 我在 Edge 网关配置中看到 “不同步” 错误消息
<a name="sa-sync-failed"></a>

部署完成后，如果您在Siemens Industrial Edge网关上看到`Out of sync`错误消息，则表示物联网 SiteWise 发布者组件与您的网关不同步。物联网 SiteWise 发布者组件在Siemens Industrial Edge网关的后台运行，以提供 MQTT 主题功能。我们将Siemens Industrial Edge网关升级为使用功能命名空间，`iotsitewise:publisher:3`而不是`iotsitewise:publisher:2`。您可以更新到最新版本的发布者来解决此问题。

**升级到最新版本的 IoT SiteWise 发行商**

1. <a name="sitewise-open-console"></a>导航至 [AWS IoT SiteWise 控制台](https://console.aws.amazon.com/iotsitewise/)。

1. 在导航窗格中，选择 **Edge 网关**。

1. 选择要编辑的Siemens Industrial Edge网关。

1. 在 **Edge 功能**部分，选择 **View 软件版本**。

1. 在 “发布者” 下拉菜单下选择最新版本的 IoT SiteWise **发行商**。

1. 选择**完成**。

## 边缘开源集成疑难解答
<a name="open-source-troubleshooting"></a>

本节提供了在将开源工具与 SiteWise Edge 集成时可能遇到的常见问题的解决方案。

**注意**  
Node-red®、InfluxDB® 和 Grafana® 不是 Edge 的供应商或供应商。 SiteWise 

### 连接问题
<a name="connection-issues"></a>

Node-red 无法连接到 MQTT 代理  
验证 MQTT 代理是否正在运行且可在指定端口上访问。检查您的网络配置并确保经纪人地址正确无误。  
要验证 MQTT 代理状态，请运行：  

```
docker ps | grep emqx
```

InfluxDB 连接错误  
确保您的身份验证令牌有效，并且您指定了正确的组织和存储桶名称。检查InfluxDB是否正在运行并且可以访问。  
要验证 InfluxDB 状态，请运行：  

```
curl -I http://localhost:8086
```

Grafana 无法连接到 InfluxDB  
验证 Grafana 中的 InfluxDB 数据源配置是否正确，包括网址、身份验证令牌、组织和存储桶。

### 数据流问题
<a name="data-flow-issues"></a>

中没有显示任何数据 AWS IoT SiteWise  
检查 Node-RED 流程中的属性别名是否与预期格式匹配。验证 MQTT 主题结构是否正确，并且 SiteWise Edge 网关已正确配置为接收来自 MQTT 代理的数据。

InfluxDB 中没有存储 SiteWise 边缘数据  
验证 Node-red 保留流程的配置是否正确，以及 InfluxDB 写入器节点是否具有正确的存储桶和测量设置。检查 Node-red 调试输出中是否存在任何错误。

数据格式错误  
确保您的数据转换函数在格式之间正确转换数据。使用 Node-red 调试节点在流程的每个阶段检查数据。

### 性能问题
<a name="performance-issues"></a>

CPU 或内存使用率过高  
监控资源使用情况，并根据需要调整组件的配置。考虑降低数据收集频率或实施数据筛选以减少处理负载。  
要监控资源使用情况，请运行：  

```
docker stats
```

Grafana 仪表板加载速度缓慢  
优化您的InfluxDB查询，并考虑在仪表板面板中添加时间范围限制。使用适当的聚合函数减少显示的数据点数量。

### 日志和诊断
<a name="logging-and-diagnostics"></a>

要对问题进行故障排除，请检查每个组件的日志：

节点红色日志  
在 Node-red 控制台中查看日志或运行：  

```
docker logs node-red
```

InfluxDB 日志  
通过运行以下命令访问日志：  

```
docker logs influxdb
```

Grafana 日志  
运行以下命令查看日志：  

```
docker logs grafana
```

SiteWise 边缘日志  
查看 SiteWise Edge 网关日志，了解 MQTT 连接和数据处理问题。有关更多信息，请参阅 [对 SiteWise 边缘网关进行故障排除](#troubleshooting-gateway)。

## 疑难解答 AWS IoT Greengrass 问题
<a name="troubleshoot-greengrass-issues"></a>

要查找在上配置或部署 SiteWise Edge 网关的许多问题的解决方案 AWS IoT Greengrass，请参阅*AWS IoT Greengrass 开发人员指南 AWS IoT Greengrass*中的[疑难解答](https://docs.aws.amazon.com/greengrass/v1/developerguide/gg-troubleshooting.html)。