我可以将AWS LightSail与AWS CloudWatch一起使用吗?

iks*_*nae 6 amazon-ec2 amazon-web-services amazon-cloudwatch amazon-lightsail

我最近开始测试LightSail,但我想将我的日志记录集中在CloudWatch中,但似乎找不到任何可以实现此功能的内容.有趣的是,LightSail实例没有出现在EC2仪表板中.我以为它们只是表面下的EC2实例.

Mic*_*bot 12

我以为它们只是表面下的EC2实例.

对,但是.

从概念上讲,您是Lightsail的客户,而Lightsail是EC2的客户.

就好像你和AWS之间有一个中间人.Lightsail资源 EC2中,但它们不在您的 EC2中.它们似乎归您的 AWS账户以外 AWS账户所有,因此您无法直接看到它们.

相似之处:

RDS是EC2/EBS的"客户".RDS实例是具有EBS卷的EC2机器.他们在控制台的哪个位置?他们不在那里.基础资源不属于您的帐户.

在EC2中,EBS快照存储在S3中.哪个桶?不是你能看到的.EBS是S3的"客户".它有自己的水桶.

S3对象可以迁移到Glacier存储类.哪个冰川保险库?再一次,不是你能看到的.S3是Glacier的"客户".它有自己的保险库.

CloudFront会自动为每个API网关端点提供前端.哪个发行?您明白了...... API Gateway是CloudFront的"客户".

我并不是以任何方式暗示Lightsail实际上是一个与AWS无关的独立实体......我不知道它实际上是如何组织的......但从操作上来说,这就是它的工作原理.你看不到这些资源.

  • 非常感谢您澄清这一点。现在,这实际上很有意义。 (3认同)

Cal*_*Cal 6

有可能让它工作。问题在于 Lightsail 实例是底层的 EC2 实例,但无法访问所有 EC2 配置。CloudWatch 代理文档解释了如何为 EC2 实例设置 IAM 角色以承担,但 Lightsail 框仅使用一个无法更改且无法编辑的角色。因此,您需要按照说明将其设置为本地服务器。

您将遇到的问题正如 David J Eddy 在他的回答中所见:

2018-10-20T16:04:37Z E! WriteToCloudWatch failure, err:  AccessDenied: User: arn:aws:sts::891535117650:assumed-role/AmazonLightsailInstanceRole/i-0788a602f758b836f is not authorized to perform: cloudwatch:PutMetricData status code: 403, request id: b443ecc6-d481-11e8-a551-6d030b8667be
Run Code Online (Sandbox Code Playgroud)

这是由于 CloudWatch 代理中的一个错误,-m onPremise如果检测到它在 EC2 实例上运行,它会忽略使用本地模式 ( )的参数。诀窍是编辑common-config.toml文件以强制使用本地 AWS CLI 配置文件进行身份验证。您需要将以下行添加到该文件(可以/opt/aws/amazon-cloudwatch-agent/etc/common-config.toml在 Debian上找到- 安装位置取决于操作系统):

[credentials]
shared_credential_profile = "AmazonCloudWatchAgent"
Run Code Online (Sandbox Code Playgroud)

重新启动代理,它应该开始报告指标。我在这里整理了一个完整的教程