我正在对 Amazon Elastic Kubernetes Service(Amazon EKS)实例进行故障排除。我需要收集与该实例关联的所有相关 Amazon EKS 日志。
简短描述
使用 AWSSupport-CollectEKSInstanceLogs 自动化文档来收集您的 Amazon EKS 日志。
**重要提示:**为了自动执行此操作,您必须在 Amazon EKS 实例上安装并运行 SSM 代理。
解决方法
**注意:**以下解决方法仅适用于 Amazon EKS for Linux 中的 Worker 节点。
1. 打开 AWS Systems Manager 控制台。
2. 在导航窗格中,选择 Automation(自动化)。
3. 选择 Execute automation(执行自动化)。
4. 在 Owned by Amazon(由 Amazon 所拥有)选项卡的 Automation document(自动化文档)搜索框中,输入 EKSInstanceLogs。然后,选择 AWSSupport-CollectEKSInstanceLogs 文档。
5. 选择 Next(下一步)。
6. 在 Automation Inputs(自动化输入)页面上,对于 EKSInstanceId,请输入您的目标 Amazon EKS 实例 ID。
7. 设置 LogDestination 和 AutomationAssumeRole 参数。
**注意:**日志捆绑包将上传到在 LogDestination 字段中指定的 Amazon Simple Storage Service(Amazon S3)存储桶。如果您没有指定存储桶,则可以从实例中检索日志捆绑包。日志捆绑包在本地保存在 /var/log/ 路径下。
8. 选择 Execute automation(执行自动化)。
运行上述自动化文档时,请注意以下最佳实践和要求:
- 最佳实践是将 Amazon 托管的 AmazonSSMManagedInstanceCore 策略附加到相关的 AWS Identity and Access Management(IAM)角色。此 IAM 角色适用于以自动化为目标的 Amazon Elastic Compute Cloud(Amazon EC2)实例。
- 如果您在自动化运行之前在 LogDestination 字段中提供 S3 存储桶名称,则实例配置文件可写入该存储桶。
- 要运行自动化并将命令发送到实例,您必须至少具有 ssm:ExecuteAutomation 和 ssm:SendCommand 权限。
- 要读取自动化输出,您必须具有 ssm:GetAutomationExecution 权限。
相关信息
为 Systems Manager 创建 IAM 实例配置文件
EKS 日志收集器(GitHub)