

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

# 监控 AWS ParallelCluster 和日志
<a name="monitoring-overview"></a>

监控是维护和其他 AWS 解决方案的可靠性、可用性和性能的重要组成部分。 AWS ParallelCluster AWS 提供以下监控工具 AWS ParallelCluster，供您监视、报告问题并在适当时自动采取措施：
+ *Amazon* 会实时 CloudWatch监控您的 AWS 资源和您运行 AWS 的应用程序。您可以收集和跟踪指标，创建自定义的控制平面，以及设置警报以在指定的指标达到您指定的阈值时通知您或采取措施。例如，您可以 CloudWatch 跟踪您的 Amazon EC2 实例的 CPU 使用率或其他指标，并在需要时自动启动新实例。有关更多信息，请参阅 [Amazon CloudWatch 用户指南](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)。
+ *Amazon Lo CloudWatch gs* 使您能够监控、存储和访问来自亚马逊 EC2 实例和其他来源的日志文件。 CloudTrail CloudWatch 日志可以监视日志文件中的信息，并在达到特定阈值时通知您。您还可以在高持久性存储中检索您的日志数据。有关更多信息，请参阅 [Amazon CloudWatch 日志用户指南](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/)。
+ *AWS CloudTrail* 捕获由您的 AWS 账户 或代表该账户发出的 API 调用和相关事件，并将日志文件传输到您指定的 Amazon S3 桶。您可以标识哪些用户和账户调用了 AWS、发出调用的源 IP 地址以及调用的发生时间。有关更多信息，请参阅 [AWS CloudTrail 《用户指南》](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)。
+ *Amazon EventBridge* 是一项无服务器事件总线服务，可以轻松地将您的应用程序与来自各种来源的数据连接起来。 EventBridge 提供来自您自己的应用程序、 Software-as-a-Service (SaaS) 应用程序和 AWS 服务的实时数据流，并将这些数据路由到 Lambda 等目标。这使您能够监控服务中发生的事件，并构建事件驱动的架构。有关更多信息，请参阅 [Amazon EventBridge 用户指南](https://docs.aws.amazon.com/eventbridge/latest/userguide/)。

**Topics**
+ [与 Amazon CloudWatch 日志集成](cloudwatch-logs-v3.md)
+ [亚马逊 CloudWatch 控制面板](cloudwatch-dashboard-v3.md)
+ [Amazon 针对集群指标的 CloudWatch 警报](cloudwatch-alarms-v3.md)
+ [AWS ParallelCluster 配置的日志轮换](log-rotation-v3.md)
+ [`pcluster` CLI 日志](troubleshooting-v3-pc-cli-logs.md)
+ [Amazon EC2 控制台输出日志](console-logs-v3.md)
+ [检索 PCUI 和 AWS ParallelCluster 运行时日志](troubleshooting-v3-get-runtime-logs.md)
+ [检索和保留日志](troubleshooting-v3-get-logs.md)

# 与 Amazon CloudWatch 日志集成
<a name="cloudwatch-logs-v3"></a>

有关 CloudWatch 日志的更多信息，请参阅 [Amazon CloudWatch 日志用户指南](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/)。要配置 CloudWatch 日志集成，请参阅一[`Monitoring`](Monitoring-v3.md)节。要了解如何使用将自定义日志附加到 CloudWatch 配置中`append-config`，请参阅 *Amazon CloudWatch 用户指南*中的[多个 CloudWatch 代理配置文件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-common-scenarios.html#CloudWatch-Agent-multiple-config-files)。

## Amazon CloudWatch 日志集群日志
<a name="cloudwatch-logs-clusters"></a>

将为每个集群创建一个名为 `/aws/parallelcluster/cluster-name-<timestamp>` 的日志组（例如 `/aws/parallelcluster/testCluster-202202050215`）。每个节点上的每个日志（如果路径包含 `*`，则为一组日志）都有一个名为 `{hostname}.{instance_id}.{logIdentifier}` 的日志流。（例如 `ip-172-31-10-46.i-02587cf29cc3048f3.nodewatcher`。） 日志数据 CloudWatch 由代理发送到，该[CloudWatch 代理](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html)像`root`在所有集群实例上一样运行。

Amazon CloudWatch 控制面板是在创建集群时创建的。此仪表板使您能够查看存储在日志中的 CloudWatch 日志。有关更多信息，请参阅 [亚马逊 CloudWatch 控制面板](cloudwatch-dashboard-v3.md)。

此列表包含平台*logIdentifier*、调度器和节点可用的日志流的和路径。


**适用于平台、调度器和节点的日志流**  

| 平台 | 调度器 | Nodes | 日志流 | 
| --- | --- | --- | --- | 
|  amazon redhat ubuntu  |  awsbatch slurm  |  HeadNode  |  dcv-authenticator：`/var/log/parallelcluster/pcluster_dcv_authenticator.log` dcv-ext-authenticator: `/var/log/parallelcluster/pcluster_dcv_connect.log` dcv-agent：`/var/log/dcv/agent.*.log` dcv-xsession：`/var/log/dcv/dcv-xsession.*.log` dcv-server：`/var/log/dcv/server.log` dcv-session-launcher: `/var/log/dcv/sessionlauncher.log` Xdcv：`/var/log/dcv/Xdcv.*.log` cfn-init：`/var/log/cfn-init.log` chef-client：`/var/log/chef-client.log`  | 
|  amazon redhat ubuntu  |  awsbatch slurm  |  ComputeFleet HeadNode  |  cloud-init：`/var/log/cloud-init.log` supervisord：`/var/log/supervisord.log`  | 
|  amazon redhat ubuntu  |  slurm  |  ComputeFleet  |  cloud-init-output: `/var/log/cloud-init-output.log` computemgtd：`/var/log/parallelcluster/computemgtd` slurmd：`/var/log/slurmd.log` slurm\$1prolog\$1epilog：`/var/log/parallelcluster/slurm_prolog_epilog.log`  | 
|  amazon redhat ubuntu  |  slurm  |  HeadNode  |  sssd：`/var/log/sssd/sssd.log` sssd\$1domain\$1default：`/var/log/sssd/sssd_default.log` pam\$1ssh\$1key\$1generator：`/var/log/parallelcluster/pam_ssh_key_generator.log` clusterstatusmgtd：`/var/log/parallelcluster/clusterstatusmgtd` clustermgtd：`/var/log/parallelcluster/clustermgtd` compute\$1console\$1output：`/var/log/parallelcluster/compute_console_output` slurm\$1resume：`/var/log/parallelcluster/slurm_resume.log` slurm\$1suspend：`/var/log/parallelcluster/slurm_suspend.log` slurmctld：`/var/log/slurmctld.log` slurm\$1fleet\$1status\$1manager：`/var/log/parallelcluster/slurm_fleet_status_manager.log`  | 
|  amazon redhat  |  awsbatch slurm  |  ComputeFleet HeadNode  |  system-messages：`/var/log/messages`  | 
|  ubuntu  |  awsbatch slurm  |  ComputeFleet HeadNode  |  syslog：`/var/log/syslog`  | 

使用集群中的作业将达到`RUNNING``SUCCEEDED`、或状态的作业的输出 AWS Batch 存储`FAILED`在 CloudWatch 日志中。日志组为 `/aws/batch/job`，日志流名称格式为 `jobDefinitionName/default/ecs_task_id`。默认情况下，这些日志设置为不过期，但您可以修改保留期。有关更多信息，请参阅《*Amazon 日志用户指南》中的 “ CloudWatch 日志” 中的更改 CloudWatch 日志*[数据保留期](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/SettingLogRetention.html)。

## Amazon CloudWatch Logs 生成镜像日志
<a name="cloudwatch-logs-build-images"></a>

将为每个自定义构建映像创建名为 `/aws/imagebuilder/ParallelClusterImage-<image-id>` 的日志组。名为 *\$1pcluster-version\$1* /1 的唯一日志流包含构建映像过程的输出。

您可以使用 [`pcluster`](pcluster-v3.md) 映像命令访问这些日志。有关更多信息，请参阅 [AWS ParallelCluster AMI 自定义](custom-ami-v3.md)。

# 亚马逊 CloudWatch 控制面板
<a name="cloudwatch-dashboard-v3"></a>

Amazon CloudWatch 控制面板是在创建集群时创建的。这样可以更轻松地监控集群中的节点和查看 Amazon Logs 中存储的 CloudWatch 日志。仪表板的名称是`ClusterName-Region`。 *ClusterName*是您的集群的名称，*Region*也是集群所在 AWS 区域 的名称。您可以在控制台中访问控制面板，也可以通过打开 `https://console.aws.amazon.com/cloudwatch/home?region=Region#dashboards:name=ClusterName-Region` 来访问控制面板。

下图显示了集群的示例 CloudWatch 仪表板。

 ![\[Dashboard graphs of the status of cluster resources.\]](http://docs.aws.amazon.com/zh_cn/parallelcluster/latest/ug/images/CW-dashboard.png) 

**头节点实例指标**

控制面板的第一部分显示了头节点 Amazon EC2 指标的图表。

如果您的集群具有共享存储，则下一部分将显示共享存储指标。

**集群运行状况指标**

如果您的集群使用 Slurm 在调度方面，集群运行状况指标图表显示集群计算节点的实时错误。有关更多信息，请参阅 [集群运行状况指标故障排除](troubleshooting-v3-cluster-health-metrics.md)。从 3.6.0 AWS ParallelCluster 版开始，集群运行状况指标已添加到控制面板中。

**头节点日志**

最后一部分列出了按 AWS ParallelCluster日志、调度程序日志、Amazon DCV 集成日志和系统日志分组的主节点日志。

有关亚马逊 CloudWatch 控制面板的更多信息，请参阅[亚马逊* CloudWatch 用户指南中的使用亚马逊 CloudWatch *控制面板](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)。

如果您不想创建亚马逊 CloudWatch 控制面板，可以通过将 [`Monitoring`](Monitoring-v3.md)//[`Dashboards`[`CloudWatch`](Monitoring-v3.md#yaml-Monitoring-Dashboard-CloudWatch)](Monitoring-v3.md#yaml-Monitoring-Dashboards)/设置[`Enabled`](Monitoring-v3.md#yaml-Monitoring-Dashboard-CloudWatch-Enabled)为将其关闭`false`。

**注意**  
如果您禁用创建亚马逊 CloudWatch 控制面板，则还会禁用集群的亚马逊 CloudWatch `disk_used_percent`和`memory_used_percent`警报。有关更多信息，请参阅 [Amazon 针对集群指标的 CloudWatch 警报](cloudwatch-alarms-v3.md)。  
从 3.6 AWS ParallelCluster 版开始添加`disk_used_percent`和`memory_used_percent`警报。

# Amazon 针对集群指标的 CloudWatch 警报
<a name="cloudwatch-alarms-v3"></a>

AWS ParallelCluster 配置 Amazon CloudWatch 警报以监控头节点的运行状况和资源利用率。警报是命名的`cluster-name-HeadNode-metric`，其中*cluster-name*是您的集群的名称，*metric*用于标识正在监控的指标。

在导航窗格中选择警报，即可访问 CloudWatch 控制台中的**警报**。

当任何单个头节点警报触发时，名为的复合警报`cluster-name-HeadNode`进入`ALARM`状态。

## 磁盘和内存警报
<a name="cloudwatch-alarms-v3-disk-mem"></a>

从 3.6.0 AWS ParallelCluster 版开始，将创建以下 CloudWatch 警报：
+ `cluster-name-HeadNode-Disk`— 监视根音量`disk_used_percent`指标。进入在 1 分钟内有 1 个数据点的磁盘使用率超过 90% 时的`ALARM`状态。
+ `cluster-name-HeadNode-Mem`— 监控`mem_used_percent`指标。在 1 分钟内，1 个数据点的内存使用率大于 90% 时进入`ALARM`状态。

有关更多信息，请参阅 *Amazon CloudWatch 用户指南*[中的 CloudWatch代理收集的指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/metrics-collected-by-CloudWatch-agent.html)。

## Health 检查和 CPU 警报
<a name="cloudwatch-alarms-v3-health-cpu"></a>

从 3.8.0 AWS ParallelCluster 版开始，将创建以下 CloudWatch 警报：
+ `cluster-name-HeadNode-Health`— 监控 Amazon EC2 `StatusCheckFailed` 指标。在 1 分钟时间段内，1 个数据点的值大于 0 时进入`ALARM`状态。
+ `cluster-name-HeadNode-Cpu`— 监控 Amazon EC2 `CPUUtilization` 指标。在 1 分钟内，1 个数据点的 CPU 利用率大于 90% 时进入`ALARM`状态。

## 集群管理守护程序心跳警报
<a name="cloudwatch-alarms-v3-clustermgtd"></a>

从 AWS ParallelCluster 版本 3.15.0 开始，当启用 Amazon CloudWatch 日志记录并使用Slurm计划程序时，会创建以下警报：
+ `cluster-name-HeadNode-ClustermgtdHeartbeat`— 监控命`ParallelCluster`名空间中的`ClustermgtdHeartbeat`指标。当在 1 分钟内连续 10 个数据点收到的心跳少于 1 次时，警报就会进入`ALARM`状态。丢失的数据被视为泄露。

**注意**  
所有警报均以对称方式恢复：触发警报的相同数据点和评估周期也控制着恢复。例如，在同一观察周期内，具有 1 个数据点的警报在 1 个正常数据点后恢复，同样，`ClustermgtdHeartbeat`警报需要连续 10 个良好的数据点（10 分钟）才能返回`OK`。

**注意**  
AWS ParallelCluster 不配置警报动作。有关如何设置警报操作（例如发送通知）的信息，请参阅[警报操作](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-actions)。有关亚马逊 CloudWatch 警报的更多信息，请参阅[亚马逊* CloudWatch 用户指南中的使用亚马逊 CloudWatch *警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)。  
对于 3.8.0 及更高 AWS ParallelCluster 版本，请在集群配置`false`中将 [`Monitoring`](Monitoring-v3.md)/[`Alarms`](Monitoring-v3.md#yaml-Monitoring-Alarms)/设置[`Enabled`](Monitoring-v3.md#yaml-Monitoring-Alarms-Enabled)为来禁用警报。  
对于 3.8.0 之前的 AWS ParallelCluster 版本，请在集群配置`false`中将 [`Monitoring`](Monitoring-v3.md)//[`Dashboards`[`CloudWatch`](Monitoring-v3.md#yaml-Monitoring-Dashboard-CloudWatch)](Monitoring-v3.md#yaml-Monitoring-Dashboards)/设置[`Enabled`](Monitoring-v3.md#yaml-Monitoring-Dashboard-CloudWatch-Enabled)为来禁用警报。请注意，此设置还会禁用 Amazon CloudWatch 控制面板。有关更多[亚马逊 CloudWatch 控制面板](cloudwatch-dashboard-v3.md)详细信息，请参阅。

# AWS ParallelCluster 配置的日志轮换
<a name="log-rotation-v3"></a>

 AWS ParallelCluster 日志轮换配置位于`/etc/logrotate.d/parallelcluster_*_log_rotation`文件中。当配置的日志轮换时，当前日志内容将保留在单个备份中，清空的日志将恢复日志记录。

配置的每个日志仅保留 1 个备份。

AWS ParallelCluster 将快速增长的日志配置为在大小达到 50 MB 时进行轮换。快速增长的日志与扩展有关 Slurm，包括`/var/log/parallelcluster/clustermgtd``/var/log/parallelcluster/slurm_resume.log`、和`/var/log/slurmctld.log`。

AWS ParallelCluster 将增长缓慢的日志配置为在大小达到 10 MB 时进行轮换。

在启用日志记录的情况下，您可以查看在集群配置 [`Logs`](Monitoring-v3.md#yaml-Monitoring-Logs)/[`CloudWatch`](Monitoring-v3.md#yaml-Monitoring-Logs-CloudWatch)/[`RetentionInDays`](Monitoring-v3.md#yaml-Monitoring-Logs-CloudWatch-RetentionInDays)设置中定义的天数内保留的较早日 CloudFormation 志。检查 `RetentionInDays` 设置，查看您的用例是否需要增加天数。

AWS ParallelCluster 配置和轮换以下日志：

**头节点日志**

```
/var/log/cloud-init.log
/var/log/supervisord.log
/var/log/cfn-init.log
/var/log/chef-client.log
/var/log/dcv/server.log
/var/log/dcv/sessionlauncher.log
/var/log/dcv/agent.*.log
/var/log/dcv/dcv-xsession.*.log
/var/log/dcv/Xdcv.*.log
/var/log/parallelcluster/pam_ssh_key_generator.log
/var/log/parallelcluster/clustermgtd
/var/log/parallelcluster/clusterstatusmgtd
/var/log/parallelcluster/slurm_fleet_status_manager.log
/var/log/parallelcluster/slurm_resume.log
/var/log/parallelcluster/slurm_suspend.log
/var/log/slurmctld.log
/var/log/slurmdbd.log
/var/log/parallelcluster/compute_console_output.log
```

**计算节点日志**

```
/var/log/cloud-init.log
/var/log/supervisord.log
/var/log/cloud-init-output.log
/var/log/parallelcluster/computemgtd
/var/log/slurmd.log
```

**登录节点日志**

```
/var/log/cloud-init.log
/var/log/cloud-init.log
/var/log/cloud-init-output.log
/var/log/supervisord.log
/var/log/parallelcluster/pam_ssh_key_generator.log
```

# `pcluster` CLI 日志
<a name="troubleshooting-v3-pc-cli-logs"></a>

`pcluster` CLI 将您的命令的日志写入 `/home/user/.parallelcluster/` 下的 `pcluster.log.#` 文件中。

对于每条命令，日志通常都包括带输入的命令、用于发出该命令的 CLI API 版本的副本、响应以及信息和错误消息。对于创建和生成命令，日志还包括配置文件、配置文件验证操作、 CloudFormation 模板和堆栈命令。

您可以使用这些日志来验证错误、输入、版本和 `pcluster` CLI 命令。它们还可以记录发出命令的时间。

# Amazon EC2 控制台输出日志
<a name="console-logs-v3"></a>

当 AWS ParallelCluster 检测到静态计算节点实例意外终止时，它会在一段时间后尝试从已终止的节点实例中检索 Amazon EC2 控制台输出。这样，如果计算节点无法与 Amazon 通信 CloudWatch，仍然可以从控制台输出中检索有关节点终止原因的有用故障排除信息。此控制台输出记录在头节点的 `/var/log/parallelcluster/compute_console_output` 日志中。有关亚马逊 EC2 控制台输出的更多信息，请参阅亚马逊 *Linux 实例 EC2 用户指南中的实例*[控制台输出](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-console.html#instance-console-console-output)。

默认情况下， AWS ParallelCluster 仅从已终止节点的示例子集中检索控制台输出。在有大量终止导致多个控制台输出请求的情况下，这可防止集群头节点不堪重负。默认情况下， AWS ParallelCluster 在终止检测和控制台输出检索之间等待 5 分钟，让 Amazon 有 EC2 时间从节点检索最终的控制台输出。

您可以在头节点上的 `/etc/parallelcluster/slurm_plugin/parallelcluster_clustermgtd.conf` 文件中编辑样本量和等待时间参数值。

此功能已在 3.5.0 AWS ParallelCluster 版本中添加。

## Amazon EC2 控制台输出参数
<a name="console-logs-parameters-v3"></a>

您可以在头节点`/etc/parallelcluster/slurm_plugin/parallelcluster_clustermgtd.conf`的文件中编辑以下 Amazon EC2 控制台输出参数的值。

### `compute_console_logging_enabled`
<a name="console-logs-enable-v3"></a>

要禁用控制台输出日志收集，请将 `compute_console_logging_enabled` 设置为 `false`。默认值为 `true`。

您可以随时更新此参数，而无需停止计算实例集。

### `compute_console_logging_max_sample_size`
<a name="console-logs-max-sample-size-v3"></a>

`compute_console_logging_max_sample_size`设置每次检测到意外终止时从中 AWS ParallelCluster 收集控制台输出的最大计算节点数。如果此值小于`1`，则从所有终止的节点 AWS ParallelCluster 检索控制台输出。默认值为 `1`。

您可以随时更新此参数，而无需停止计算实例集。

### `compute_console_wait_time`
<a name="console-logs-wait-time-v3"></a>

`compute_console_wait_time`设置从检测到节点故障到从该节点收集控制台输出之间 AWS ParallelCluster 等待的时间（以秒为单位）。如果您确定 Amazon EC2 需要更多时间来收集已终止节点的最终输出，则可以延长等待时间。默认值为 300 秒（5 分钟）。

您可以随时更新此参数，而无需停止计算实例集。

# 检索 PCUI 和 AWS ParallelCluster 运行时日志
<a name="troubleshooting-v3-get-runtime-logs"></a>

了解如何检索 PCUI 和 AWS ParallelCluster 运行时日志以进行故障排除。首先，找到相关的 PCUI 和 AWS ParallelCluster 堆栈名称。使用堆栈名称找到安装日志组。最后，导出日志。这些日志特定于 AWS ParallelCluster 运行时系统。有关集群日志，请参阅[检索和保留日志](troubleshooting-v3-get-logs.md)。

**先决条件**
+  AWS CLI 已安装。
+ 您拥有在 PCUI 开启 AWS 账户 的上运行 AWS CLI 命令的凭据。
+ 您可以在 PCUI 处于开启状态 AWS 账户 的上访问亚马逊 CloudWatch 控制台。

## 步骤 1：找到相关堆栈的堆栈名称
<a name="pcui-install-logs-v3-step-1"></a>

在以下示例中，将红色突出显示的文本替换为实际值。

使用安装 PCUI 的 AWS 区域 位置列出堆栈：

```
$ aws cloudformation list-stacks --region aws-region-id
```

请注意以下堆栈的堆栈名称：
+ 在您的账户中部署 PCUI 的堆栈的名称。您在安装 PCUI 时输入了该名称；例如 `pcluster-ui`。
+ 以您输入的 AWS ParallelCluster 堆栈名称为前缀的堆栈；例如，`pcluster-ui-ParallelClusterApi-ABCD1234EFGH`。

## 步骤 2：找到日志组
<a name="pcui-install-logs-v3-step-2"></a>

列出 PCUI 堆栈的日志组，如以下示例所示：

```
$ aws cloudformation describe-stack-resources \
   --region aws-region-id \
   --stack-name pcluster-ui \
   --query "StackResources[?ResourceType == 'AWS::Logs::LogGroup' && (LogicalResourceId == 'ApiGatewayAccessLog' || LogicalResourceId == 'ParallelClusterUILambdaLogGroup')].PhysicalResourceId" \
   --output text
```

列出 AWS ParallelCluster API 堆栈的日志组，如以下示例所示：

```
$ aws cloudformation describe-stack-resources \
   --region aws-region-id \
   --stack-name pcluster-ui-ParallelCluster-Api-ABCD1234EFGH \
   --query "StackResources[?ResourceType == 'AWS::Logs::LogGroup' && LogicalResourceId == 'ParallelClusterFunctionLogGroup'].PhysicalResourceId" \
   --output text
```

记下日志组列表，以便在下一个步骤中使用。

## 步骤 3：导出日志
<a name="pcui-install-logs-v3-step-3"></a>

使用以下步骤收集并导出日志：

1. 登录 AWS 管理控制台，然后在 PCUI 已开启的上导航到 [Amazon CloudWatch](https://console.aws.amazon.com/cloudwatch/) 控制台。 AWS 账户 

1. 在导航窗格上，依次选择**日志**和 **日志见解**。

1. 选择上一步中列出的所有日志组。

1. 选择时间范围，例如 12 小时。

1. 运行以下查询：

   ```
   $ fields @timestamp, @message
   | sort @timestamp desc
   | limit 10000
   ```

1. 选择**导出结果**、**下载表 (JSON)**。

# 检索和保留日志
<a name="troubleshooting-v3-get-logs"></a>

AWS ParallelCluster 为计算实例 HeadNode 和存储创建 Amazon EC2 指标。您可以在控制台的**自定义 CloudWatch 控制面板**中查看指标。 AWS ParallelCluster 还会在 CloudWatch 日志组中创建集群日志流。您可以在控制台的**自定义 CloudWatch 控制面板**或**日志组**中查看这些日志。[监控](Monitoring-v3.md#yaml-Monitoring-Logs-CloudWatch)集群配置部分描述了如何修改集群 CloudWatch日志和控制面板。有关更多信息，请参阅[与 Amazon CloudWatch 日志集成](cloudwatch-logs-v3.md)和[亚马逊 CloudWatch 控制面板](cloudwatch-dashboard-v3.md)。

日志是用于排查问题的有用资源。例如，如果您想要删除失败的集群，则首先创建该集群的日志存档可能会很有用。按照[存档日志](#troubleshooting-v3-get-logs-archive)中的步骤创建存档。

**Topics**
+ [中的集群日志不可用 CloudWatch](#troubleshooting-v3-get-logs-unavailable)
+ [存档日志](#troubleshooting-v3-get-logs-archive)
+ [保留的日志](#troubleshooting-v3-get-logs-preserve)
+ [已终止节点日志](#troubleshooting-v3-get-logs-terminated-node)

## 中的集群日志不可用 CloudWatch
<a name="troubleshooting-v3-get-logs-unavailable"></a>

如果中没有集群日志 CloudWatch，请检查以确保在向配置中添加自定义 AWS ParallelCluster CloudWatch 日志时没有覆盖日志配置。

要向 CloudWatch 配置中添加自定义日志，请确保附加到配置中，而不是获取和覆盖配置。有关`fetch-config`和的更多信息`append-config`，请参阅《*CloudWatch 用户指南》*中的[多个 CloudWatch 代理配置文件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-common-scenarios.html#CloudWatch-Agent-multiple-config-files)。

要恢复 AWS ParallelCluster CloudWatch 日志配置，可以在 AWS ParallelCluster 节点内运行以下命令：

```
$ PLATFORM="$(ohai platform | jq -r ".[]")"
LOG_GROUP_NAME="$(cat /etc/chef/dna.json | jq -r ".cluster.log_group_name")"
SCHEDULER="$(cat /etc/chef/dna.json | jq -r ".cluster.scheduler")"
NODE_ROLE="$(cat /etc/chef/dna.json | jq -r ".cluster.node_type")"
CONFIG_DATA_PATH="/usr/local/etc/cloudwatch_agent_config.json"
/opt/parallelcluster/pyenv/versions/cookbook_virtualenv/bin/python /usr/local/bin/write_cloudwatch_agent_json.py --platform $PLATFORM --config $CONFIG_DATA_PATH --log-group $LOG_GROUP_NAME --scheduler $SCHEDULER --node-role $NODE_ROLE
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json -s
```

## 存档日志
<a name="troubleshooting-v3-get-logs-archive"></a>

您可以将日志存档到 Amazon S3 或本地文件中（具体取决于 `--output-file` 参数）。

**注意**  
从 AWS ParallelCluster 3.12.0 开始，您可以将日志导出到默认 AWS ParallelCluster 存储桶。在这种情况下，您无需设置存储桶权限。

**注意**  
向 Amazon S3 存储桶策略添加权限以授予 CloudWatch 访问权限。有关更多信息，请参阅*CloudWatch 日志用户指南*中的对 [Amazon S3 存储桶设置权限](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/S3ExportTasks.html#S3Permissions)。

```
$ pcluster export-cluster-logs --cluster-name mycluster --region eu-west-1 \
  --bucket bucketname --bucket-prefix logs
{
  "url": "https://bucketname.s3.eu-west-1.amazonaws.com/export-log/mycluster-logs-202109071136.tar.gz?..."
}

# use the --output-file parameter to save the logs locally
$ pcluster export-cluster-logs --cluster-name mycluster --region eu-west-1 \
  --bucket bucketname --bucket-prefix logs --output-file /tmp/archive.tar.gz
{
  "path": "/tmp/archive.tar.gz"
}
```

除非在配置或`export-cluster-logs`命令参数中明确指定，否则该档案包含过去 14 天来自头节点和计算节点的 Amazon CloudWatch Logs 流和 CloudFormation 堆栈事件。命令完成所需的时间取决于集群中的节点数量和日志中 CloudWatch 可用的日志流数量。有关可用日志流的更多信息，请参阅[与 Amazon CloudWatch 日志集成](cloudwatch-logs-v3.md)。

## 保留的日志
<a name="troubleshooting-v3-get-logs-preserve"></a>

从版本 3.0.0 开始，删除集群时会默认 AWS ParallelCluster 保留 CloudWatch 日志。如果您想要删除集群并保留其日志，请确保集群配置中的 [`Monitoring`](Monitoring-v3.md)/[`Logs`](Monitoring-v3.md#yaml-Monitoring-Logs)/[`CloudWatch`](Monitoring-v3.md#yaml-Monitoring-Logs-CloudWatch)/[`DeletionPolicy`](Monitoring-v3.md#yaml-Monitoring-Logs-CloudWatch-DeletionPolicy) 未设置为 `Delete`。否则，请将此字段的值更改为 `Retain`，然后运行 `pcluster update-cluster` 命令。然后，运行`pcluster delete-cluster --cluster-name <cluster_name>`删除集群，但保留存储在 Amazon 中的日志组 CloudWatch。

## 已终止节点日志
<a name="troubleshooting-v3-get-logs-terminated-node"></a>

如果静态计算节点意外终止并且 CloudWatch 没有日志，请检查`/var/log/parallelcluster/compute_console_output`日志中是否 AWS ParallelCluster 已将该计算节点的控制台输出记录在头节点上。有关更多信息，请参阅 [用于调试的关键日志](troubleshooting-v3-scaling-issues.md#troubleshooting-v3-key-logs)。

如果`/var/log/parallelcluster/compute_console_output`日志不可用或不包含节点的输出，请使用从故障节点检索控制台输出。 AWS CLI 登录到集群头节点并从 `/var/log/parallelcluster/slurm_resume.log` 文件中获取失败节点的 `instance-id`。

使用 `instance-id` 运行以下命令，检索控制台输出：

```
$ aws ec2 get-console-output --instance-id i-abcdef01234567890
```

如果动态计算节点在启动后自行终止并且 CloudWatch 没有日志，请提交激活集群扩展操作的作业。等待实例失败，然后检索实例控制台日志。

登录到集群头节点并从 `/var/log/parallelcluster/slurm_resume.log` 文件中获取计算节点的 `instance-id`。

要检索实例控制台日志，请使用以下命令：

```
$ aws ec2 get-console-output --instance-id i-abcdef01234567890
```

当计算节点日志不可用时，控制台输出日志可以帮助您调试计算节点失败的根本原因。