

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

# 擷取和保留日誌
<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 Logs 的整合](cloudwatch-logs-v3.md)及[Amazon 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)。 *CloudWatch *

若要還原 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 Logs 使用者指南*》中的[在 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"
}
```

封存包含過去 14 天內來自前端節點和運算節點的 Amazon CloudWatch Logs 串流和 CloudFormation 堆疊事件，除非在組態或`export-cluster-logs`命令的參數中明確指定。完成命令所需的時間取決於叢集中的節點數目，以及 CloudWatch Logs 中可用的日誌串流數目。如需可用日誌串流的詳細資訊，請參閱 [與 Amazon CloudWatch Logs 的整合](cloudwatch-logs-v3.md)。

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

從 3.0.0 版開始， 會在刪除叢集時預設 AWS ParallelCluster 保留 CloudWatch Logs。如果您想要刪除叢集並保留其日誌，請確定叢集組態`Delete`中的 [`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)未設定為 。否則，請將此欄位的值變更為 `Retain`，然後執行 `pcluster update-cluster`命令。然後，執行 `pcluster delete-cluster --cluster-name <cluster_name>`刪除叢集，但保留存放在 Amazon CloudWatch 中的日誌群組。

## 已終止的節點日誌
<a name="troubleshooting-v3-get-logs-terminated-node"></a>

如果靜態運算節點意外終止，且 CloudWatch 沒有日誌，請檢查 AWS ParallelCluster 是否已在`/var/log/parallelcluster/compute_console_output`日誌中記錄前端節點上該運算節點的主控台輸出。如需詳細資訊，請參閱[除錯的金鑰日誌](troubleshooting-v3-scaling-issues.md#troubleshooting-v3-key-logs)。

如果`/var/log/parallelcluster/compute_console_output`日誌無法使用或不包含節點的輸出，請使用 從失敗的節點 AWS CLI 擷取主控台輸出。登入叢集前端節點，`instance-id`並從 `/var/log/parallelcluster/slurm_resume.log` 檔案取得失敗的節點。

使用下列命令搭配 擷取主控台輸出`instance-id`：

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

如果動態運算節點在啟動後自動終止，且 CloudWatch 沒有日誌，請提交啟用叢集擴展動作的任務。等待執行個體失敗並擷取執行個體主控台日誌。

登入叢集前端節點，`instance-id`並從 `/var/log/parallelcluster/slurm_resume.log` 檔案取得運算節點。

若要擷取執行個體主控台日誌，請使用下列命令：

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

當運算節點日誌無法使用時，主控台輸出日誌可協助您偵錯運算節點故障的根本原因。