我正在对 Amazon Elastic Kubernetes Service (Amazon EKS) 实例进行故障排除。我需要收集与该实例相关的所有 Amazon EKS 日志。
概述
使用 AWSSupport-CollectEKSInstanceLogs 自动化文档收集您的 Amazon EKS 日志。
**重要信息:**要实现自动化,您必须在 Amazon EKS 实例上安装并运行 SSM 代理。
解决方法
**注意:**以下解决方案仅适用于 Linux 的 Amazon EKS 中的 Worker 节点。
-
打开 AWS 系统管理器控制台。
-
在导航窗格中,选择自动化。
-
选择执行自动化。
-
在 Amazon 所有选项卡的自动化文档搜索框中,输入 EKSInstanceLogs。然后,选择AWSSupport-CollectEKSInstanceLogs 档。
-
选择下一步。
-
在自动化输入页面上,对于 EKSInstanceId,输入您的目标 Amazon EKS 实例 ID。
-
设置 LogDestination 和 AutomationAssume 参数。
**注意:**日志包将上传到 LogDestination 字段中指定的Amazon Simple Storage Service (Amazon S3) 存储桶。如果您没有指定存储桶,可以从实例检索日志包。日志包保存在本地的 /var/log/ 路径中。
- 选择执行自动化。
运行上述自动化文档时,请注意以下最佳做法和要求:
- 最佳做法是将AmazonSSMManagedInstanceCore 策略附加到相关的 AWS 身份和访问管理 (IAM) 角色。此 IAM 角色适用于以自动化为目标的 Amazon Elastic Compute Cloud (Amazon EC2) 实例。
- 如果在自动化运行之前在 LogDestination 字段中提供了 S3 存储桶名称,则实例配置文件可以写入该存储桶。
- 要运行自动化并将命令发送到实例,您必须至少拥有ssm:ExecuteAutomation 和ssm:SendCommand 权限。
- 要读取自动化输出,您必须拥有ssm:GetAutomationExecution 权限。
相关信息
为 System Manager 配置实例权限
EKS 日志收集器 (GitHub)