我正在对 Amazon Elastic Kubernetes Service(Amazon EKS)实例进行故障排除。我需要收集与该实例相关的所有 Amazon EKS 日志。
简短描述
使用 AWSSupport-CollectEKSInstanceLogs 运行手册收集 Amazon EKS 日志。
**重要事项:**要使自动化发挥作用,您必须在 Amazon EKS 实例上安装并运行 AWS Systems Manager Agent(SSM Agent)。
解决方法
**注意:**以下解决方案仅适用于 Linux 的 Amazon EKS 中的 Worker 节点。
要为 Amazon EKS 实例生成日志包,请完成以下步骤:
- 打开 AWS Systems Manager 控制台。
- 在导航窗格中,选择自动化。
- 选择执行自动化。
- 在 Amazon 所有选项卡的自动化文档搜索框中,输入 EKSInstanceLogs。然后,选择 AWSSupport-CollectEKSInstanceLogs。
- 选择下一步。
- 在自动化输入页面上,对于 EKSInstanceId,输入您的目标 Amazon EKS 实例 ID。
- 设置 LogDestination 和 AutomationAssumeRole 参数。
**注意:**日志包将上传到 LogDestination 字段中指定的Amazon Simple Storage Service (Amazon S3) 存储桶。如果您没有指定存储桶,可以从实例检索日志包。日志包保存在本地的 /var/log/ 路径中。
- 选择执行自动化。
运行 AWSSupport-CollectEKSInstanceLogs 时,请使用以下最佳实践和要求:
- 最佳实践是将亚马逊托管的 AmazonSSMManagedInstanceCore 策略附加到相关的 AWS Identity and Access Management(IAM)角色。此 IAM 角色适用于以自动化为目标的 Amazon Elastic Compute Cloud(Amazon EC2)实例。
- 如果在自动化运行之前在 LogDestination 字段中提供了 S3 存储桶名称,则实例配置文件可以写入该存储桶。
- 要运行自动化并将命令发送到实例,您必须至少拥有ssm:ExecuteAutomation 和ssm:SendCommand 权限。
- 要读取自动化输出,您必须拥有 ssm:GetAutomationExecution 权限。
- 对于 Amazon Linux 2,IMDS 端点默认支持 IMDSv2 和 IMDSv1。如果您选择配置 IMDSv2,则其他版本将不再起作用。由于 AWSSupport-CollectEKSInstanceLogs 使用 IMDSv1,因此在上传收集的日志时,系统可能会显示一个待处理步骤。
相关信息
配置 Systems Manager 所需的实例权限
GitHub 网站上的 EKS Logs Collector