

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

# 常规调试和监控
<a name="res-troubleshooting-general"></a>

本节包含有关在 RES 中何处可以找到信息的信息。
+ [有用的日志和事件信息来源](#res-troubleshooting-general-info)
  + [在哪里可以找到环境变量](#res-troubleshooting-general-info-env-vars)
  + [环境 Amazon EC2 实例上的日志文件](#res-troubleshooting-general-info-logs)
  + [CloudFormation 堆栈](#res-troubleshooting-cf-stacks)
  + [由于问题导致的系统故障，并反映在 Amazon EC2 Auto Scaling 组活动中](#res-troubleshooting-asg-activity)
+ [典型的亚马逊 EC2 控制台外观](#res-troubleshooting-ec2-console)
  + [基础架构主机](#res-troubleshooting-ec2-console-infra)
  + [基础架构主机和虚拟桌面](#res-troubleshooting-ec2-console-virtual)
  + [处于终止状态的主机](#res-troubleshooting-ec2-console-hosts-terminated)
  + [与活动目录 (AD) 相关的有用命令供参考](#res-troubleshooting-ec2-console-active-dir)
+ [Windows DCV 调试](#res-troubleshooting-windows-dcv)
+ [查找 Amazon DCV 版本信息](#res-troubleshooting-find-nice-dcv)

## 有用的日志和事件信息来源
<a name="res-troubleshooting-general-info"></a>

保留的信息来源多种多样，可供故障排除和监控时参考。

### 在哪里可以找到环境变量
<a name="res-troubleshooting-general-info-env-vars"></a>

默认情况下，您可以在以下位置找到环境变量，例如会话所有者的用户名：
+ Linux：`/etc/environment`
+ Windows：`C:\Users\Administrator\RES\Bootstrap\virtual-desktop-host-windows\environment_variables.json`

### 环境 Amazon EC2 实例上的日志文件
<a name="res-troubleshooting-general-info-logs"></a>

日志文件存在于 RES 正在使用的 Amazon EC2 实例上。SSM 会话管理器可用于打开与实例的会话以检查这些文件。

在集群管理器和 vdc-controller 等基础设施实例上，可以在以下位置找到应用程序和其他日志。
+ /opt/idea/app/logs/application.log
+ //logsroot/bootstrap/
+ /var/log/
+ //sss var/log d/
+ /var/log/消息
+ /var/log/user-data.log
+ /var/log/cloud-init.log
+ /var/log/cloud-init-output.log

在 Linux 虚拟桌面上，以下内容包含有用的日志文件
+ //dc var/log v/
+ /root/bootstrap/logs/userdata.log
+ /var/log/消息
+ /opt/idea/app/logs/
+ /opt/res/logs/vdi\_idle\_check.log

在 Windows 虚拟桌面实例上，可以在以下网址找到日志
+ PS C:\\\\ ProgramData n ice\\ dcv\\ log
+ PS C:\\IDEA\\Logs\\RESIdleCheckVDI\\
+ C:\\Program Files\\ RES\\ app\\

在 Windows 上，可以在以下网址找到一些应用程序的日志记录：
+ PS C:\\Program Files\\ NICE\\ DCV\\ Server\\ bin

在 Windows 上，NICE DCV 证书文件可以在以下位置找到：
+ C:\\Windows\\System32\\config\\systemprofile\\AppData\\ Local\\ NICE\\ dcv\\

**亚马逊 CloudWatch 日志组**

Amazon EC2 和AWS Lambda计算资源将信息记录到亚马逊 CloudWatch 日志组。其中的日志条目可以在排查潜在问题时提供有用的信息，也可以提供一般信息。

这些群组的命名如下：
+ `/aws/lambda/{{<envname>}}-/ - lambda related`
  + `/aws/lambda/{{<envname>}}-backend-lambda - VDC API logs`
  + `/aws/lambda/{{<envname>}}-dcv-session-management-lambda - DCV session management logs`
+ `/{{<envname>}}/`
  + `cluster-manager/ - main infrastructure host`
  + `virtual-desktop-app/ - virtual desktop bootstrap and DCV related`
  + `vdc/ - virtual desktop related`
    + `dcv-connection-gateway/ - desktop related`
    + `controller/ - main desktop controller host`
    + `dcv-session/ - desktop session related`

在检查日志组时，使用大写和小写字符串进行筛选可能会很有帮助，如下所示。这将仅输出那些包含注明字符串的消息。

```
?"ERROR" ?"error"
```

监控问题的另一种方法是创建包含显示感兴趣数据的微件的 Amazon CloudWatch 控制面板。

例如，创建一个小部件，用于计算字符串错误和错误的出现次数，并将它们绘制为线条。这种方法可以更轻松地检测潜在问题或表明模式已发生变化的趋势。

以下是基础架构主机的示例。要使用此功能，请连接查询行，并将`<envname>`和`<region>`属性替换为相应的值。

```
{
    "widgets": [
        {
            "type": "log",
            "x": 0,
            "y": 0,
            "width": 24,
            "height": 6,
            "properties": {
                "query": "SOURCE '/{{<envname>}}/vdc/controller' | 
                    SOURCE '/{{<envname>}}/cluster-manager' | 
                   SOURCE '/{{<envname>}}/vdc/dcv-connection-gateway' | 
                    fields @timestamp, @message, @logStream, @log\n| 
                    filter @message like /(?i)(error|ERROR)/\n| 
                    sort @timestamp desc| 
                    stats count() by bin(30s)",
                "region": "{{<region>}}",
                "title": "infrastructure hosts",
                "view": "timeSeries",
                "stacked": false
            }
        }
    ]
}
```

控制板的示例可能如下所示：

![显示错误的云监视控制面板示例](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-dashboard-errors-example.png)


### CloudFormation 堆栈
<a name="res-troubleshooting-cf-stacks"></a>

在环境创建期间创建的 CloudFormation 堆栈包含与环境配置相关的资源、事件和输出信息。

对于每个堆栈，可以参阅 “事件”、“资源” 和 “输出” 选项卡，以获取有关堆栈的信息。

RES 堆栈：
+ <envname>-bootstrap
+ <envname>-集群
+ <envname>-指标
+ <envname>-目录服务
+ <envname>-身份提供商
+ <envname>-共享存储
+ <envname>-集群管理器
+ <envname>-vdc
+ <envname>-堡垒主机

演示环境堆栈（如果您正在部署演示环境并且没有这些外部资源可用，则可以使用AWS高性能计算配方为演示环境生成资源。）
+ <envname>
+ <envname>-联网
+ <envname>-DirectoryService
+ <envname>-存储
+ <envname>-WindowsManagementHost

### 由于问题导致的系统故障，并反映在 Amazon EC2 Auto Scaling 组活动中
<a name="res-troubleshooting-asg-activity"></a>

如果 RES UI 显示服务器错误，则原因可能是应用程序软件或其他问题。

每个基础设施 Amazon EC2 实例自动扩展组 (ASG) 都包含一个 “活动” 选项卡，可用于检测实例的扩展活动。如果 UI 页面发现任何错误或无法访问，请检查 Amazon EC2 控制台中是否有多个已终止的实例，并查看相关 ASG 的 Auto Scaling 组活动选项卡，以确定 Amazon EC2 实例是否处于循环状态。

如果是，请使用实例的相关 Amazon CloudWatch 日志组来确定是否记录了可能表明问题原因的错误。在实例被标记为不健康并被 ASG 终止之前，也可以使用 SSM 会话控制台打开与该类型正在运行的实例的会话，并检查该实例上的日志文件以确定原因。

如果出现此问题，ASG 控制台可能会显示类似以下内容的活动。

![示例 ec2 负载均衡器控制面板，显示有关实例运行状况和注册目标的详细信息](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-ec2-target-groups.png)


## 典型的亚马逊 EC2 控制台外观
<a name="res-troubleshooting-ec2-console"></a>

本节包含系统在不同状态下运行的屏幕截图。

### 基础架构主机
<a name="res-troubleshooting-ec2-console-infra"></a>

当没有桌面运行时，Amazon EC2 控制台通常看起来与以下内容类似。显示的实例是 RES 基础设施 Amazon EC2 主机。实例名称中的前缀是 RES 环境名称。

![仪表板显示了 res-stage2 的 ec2 实例，状态正在运行](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-ec2-instances.png)


### 基础架构主机和虚拟桌面
<a name="res-troubleshooting-ec2-console-virtual"></a>

在 Amazon EC2 控制台中，当虚拟桌面运行时，它们看起来类似于以下内容。在这种情况下，虚拟桌面以红色标注。实例名称的后缀是创建桌面的用户。中间的名称是启动时设置的会话名称，可以是默认 “MyDesktop”，也可以是用户设置的名称。

![EC2 控制台控制面板中的实例页面](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-ec2-highlighted-instances.png)


### 处于终止状态的主机
<a name="res-troubleshooting-ec2-console-hosts-terminated"></a>

当 Amazon EC2 控制台显示已终止的实例时，它们通常是已终止的桌面主机。如果控制台包含处于终止状态的基础架构主机，特别是有多个相同类型的基础架构主机，则可能表示系统问题正在发生。

下图显示了已终止的桌面实例。

![EC2 控制台控制面板中的实例页面突出显示已终止的实例](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-ec2-terminated-instances.png)


### 与活动目录 (AD) 相关的有用命令供参考
<a name="res-troubleshooting-ec2-console-active-dir"></a>

以下是 ldap 相关命令的示例，可以在基础架构主机上输入这些命令以查看 AD 配置相关信息。使用的域和其他参数应反映在创建环境时输入的参数。

```
ldapsearch "(cn=AWS Delegated Add Workstations To Domain Users)" -x -h corp.res.com 
    -b "DC=corp,DC=res,DC=com" -D "CN=Admin,OU=Users,OU=CORP,DC=corp,DC=res,DC=com" 
    -w {{<password>}}

ldapsearch "(&(objectClass=group))" -x -h corp.res.com 
    -b "DC=corp,DC=res,DC=com" -D "CN=Admin,OU=Users,OU=CORP,DC=corp,DC=res,DC=com" 
    -w {{<password>}}
```

## Windows DCV 调试
<a name="res-troubleshooting-windows-dcv"></a>

在 Windows 桌面上，您可以使用以下方式列出与其关联的会话：

```
PS C:\Windows\System32\config\systemprofile\AppData\Local\NICE\dcv> & 'C:\Program Files\NICE\DCV\Server\bin\dcv.exe'list-sessions
Session: 'a7953489-9dbf-492b-8135-7709dccc4cab' (owner:admin2 type:console name:windows1)
```

## 查找 Amazon DCV 版本信息
<a name="res-troubleshooting-find-nice-dcv"></a>

Amazon DCV 用于虚拟桌面会话。[AWS亚马逊 DCV](https://aws.amazon.com/hpc/dcv/)。以下示例说明如何确定所安装的 DCV 软件的版本。

Linux

```
[root@ip-10-3-157-194 ~]# /usr/bin/dcv version

Amazon DCV 2023.0 (r14852)
Copyright (C) 2010-2023 NICE s.r.l.
All rights reserved.

This product is protected by copyright and
licenses restricting use, copying, distribution, and decompilation.
```

Windows

```
PS C:\Windows\System32\config\systemprofile\AppData\Local\NICE\dcv> & 'C:\Program Files\NICE\DCV\Server\bin\dcv.exe' version

Amazon DCV 2023.0 (r15065)
Copyright (C) 2010-2023 NICE s.r.l.
All rights reserved.

This product is protected by copyright and
licenses restricting use, copying, distribution, and decompilation.
```