检索和保留日志 - Amazon ParallelCluster
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

检索和保留日志

Amazon ParallelCluster 为计算实例 HeadNode 和存储创建 Amazon EC2 指标。您可以在控制台的 “自定义 CloudWatch 控制面板” 中查看指标。 Amazon ParallelCluster 还会在 CloudWatch 日志组中创建集群日志流。您可以在控制台的 “自定义 CloudWatch 控制面板” 或 “日志” 组中查看这些日志监控集群配置部分描述了如何修改集群 CloudWatch日志和控制面板。有关更多信息,请参阅 与 Amazon CloudWatch Logs 集成亚马逊 CloudWatch 控制面板

日志是用于排查问题的有用资源。例如,如果您想要删除失败的集群,则首先创建该集群的日志存档可能会很有用。按照存档日志中的步骤创建存档。

集群日志在中不可用 CloudWatch

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

要向 CloudWatch 配置中添加自定义日志,请务必附加到配置中,而不是获取和覆盖配置。有关fetch-config和的更多信息append-config,请参阅《CloudWatch 用户指南》中的多个 CloudWatch 代理配置文件

要恢复 Amazon ParallelCluster CloudWatch 日志配置,可以在 Amazon 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

存档日志

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

注意

向 Amazon S3 存储桶策略添加权限以授予 CloudWatch 访问权限。有关更多信息,请参阅CloudWatch 日志用户指南中的对 Amazon S3 存储桶设置权限

$ 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 流和 Amazon CloudFormation 堆栈事件。命令完成所需的时间取决于集群中的节点数量和日志中 CloudWatch 可用的日志流数量。有关可用日志流的更多信息,请参阅与 Amazon CloudWatch Logs 集成

保留的日志

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

已终止节点日志

如果静态计算节点意外终止并且 CloudWatch 没有日志,请检查/var/log/parallelcluster/compute_console_output日志中是否 Amazon ParallelCluster 已在头节点上记录了该计算节点的控制台输出。有关更多信息,请参阅 用于调试的关键日志

如果/var/log/parallelcluster/compute_console_output日志不可用或不包含节点的输出,请使用从故障节点检索控制台输出。 Amazon 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

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