在 Windows 上安装 Amazon CloudWatch 代理并启动服务后,它会反复崩溃并重新启动。
在 Windows 事件日志中,崩溃时发生以下事件:
事件 ID 7031
错误
Amazon CloudWatch 代理服务意外终止。这种情况已经发生过 X 次。
和:
事件 ID 7039
警告
启动 Amazon CloudWatch 代理服务时,连接了除服务控制管理器启动的服务进程之外的服务进程。服务控制管理器启动了进程 XXX,而进程 XXX 已连接。
文件中的amazon-cloudwatch-agent.log
最后一个错误是:
ec2tagger:无法初始化 EC2 实例标签:+NoCredentialProviders:链中没有有效的提供商。
答案1
如果您尚未将 IAM 角色附加到实例以授予其将指标写入 CloudWatch 以及与 EC2 和 Systems Manager 通信的权限,则可能会出现这种情况。
IAM 角色的创建可以按如下方式完成:
登录 AWS 管理控制台并打开 IAM 控制台 https://console.aws.amazon.com/iam/。
在左侧导航窗格中,选择角色、创建角色。
对于选择将使用此角色的服务,请选择 EC2 允许 EC2 实例代表您调用 AWS 服务。选择下一步:权限。
在策略列表中,选中 CloudWatchAgentServerPolicy 旁边的复选框。如有必要,请使用搜索框查找策略。
要使用 SSM 安装或配置 CloudWatch 代理,请选中 AmazonEC2RoleforSSM 旁边的复选框。如有必要,请使用搜索框查找策略。如果您仅通过命令行启动和配置代理,则不需要此策略。
选择下一步:审核。
确认 CloudWatchAgentServerPolicy 和(可选)AmazonEC2RoleforSSM 显示在策略旁边。在角色名称中,键入角色的名称,例如 CloudWatchAgentServerRole。(可选)为其提供描述,然后选择创建角色。
角色现已创建。
创建 IAM 角色后,您应该将其附加到您的 EC2 实例,可以在启动时附加,也可以右键单击 EC2 中的实例并选择实例设置>附加/替换 IAM 角色。