如果要建设镜像市场(Image Market)生态,就会遇到用户订购第三方镜像后,如何把这些镜像实例纳入到统一监控系统的问题。这是一个通用问题:如果用户希望自己订购虚拟机上的业务可以被纳入到统一监控,实现在同一个监控页面观察所有产品、能力和应用的状态的能力。这就是常说的统一监控,也是一种理所当然的需求。如果要实现这个需求有两种思路:
思路1、用户自己开发一套统一监控系统。然后对接公有云厂商的监控系统,例如移动云的DeepWatch、或者AWS 的CloudWatch,通过这些系统获取底层IaaS、公有云自有产品的监控数据。然后用数据分析系统加以分析整合,并集中展现。优点是非常灵活,用户可以设计开发自己想要的界面和操作流程,例如支持大屏展示功能。缺点是这涉及到大量的开发工作,也依赖于公有云厂家提供的接口有效性,当然这还需要在公有云上订购相关的资源来存储和处理这些数据。对于大型、资金充裕的客户,这种方式更好,有更好的控制力。
思路2、利用公有云监控系统。这种方式相对更加简单。公有云监控系统,例如移动云DeepWatch可以实现对自有产品的监控和展示。优点是开发工作量小,缺点是界面和视图都是系统内置的,无法定制。但足以满足中小型客户的需求了。
对于公有云服务商来说,实现思路2是必须的选择,也可以满足多数客户的需求。同时开放公有云监控系统的API,帮助大型客户实现思路1。
第三方应用和产品是无法直接对接的。这涉及到访问权限问题。AWS CloudWatch提供了一种解决方案:主体思想是利用IAM业务来提供访问控制,首先需要创建一个角色,然后给这个角色赋予需要的权限,从而实现采集数据,并将数据送到CloudWatch,涉及到如下2个方面的权限:
1、开通在虚拟机部署CloudWatch Agent的权限
2、开通向CloudWatch发送数据的权限
用户订购的第三方镜像后,需要首先利用IAM分配一个有权限的角色、添加相关的策略,然后在镜像中部署和配置相关的数据采集工具,在后台运行这些工具就可以在CloudWatch中获得数据和监控曲线。(注:一般镜像的开发者需要提供相关的采集和监控工具。对于AWS官方提供的镜像,一般会内置这些工具)。这里有一个GPU配置的例子。
The IAM policy to search for is “cloudwatch:PutMetricData”. The policy that is added is as follows:
<?XML:NAMESPACE PREFIX = “[default] http://www.w3.org/2000/svg” NS = “http://www.w3.org/2000/svg” />
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"cloudwatch:PutMetricData"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
学到一个新的缩写DLAMI,猜猜是什么?
相关信息:
https://docs.aws.amazon.com/dlami/latest/devguide/tutorial-gpu-monitoring-gpumon.html
深度学习镜像?
咱们移动用的私有镜像不支持uefi,这个是不是要改进下。~.~!