应用监控是在生产环境使用Docker的重要条件。阿里云容器服务不但提供了核心的容器和宿主机监控能力,而且支持客户集成自己的监控解决方案,这样可以让容器服务平台融合到自己企业的IT管控之下。今天我们会以OneAPM监控为例,介绍如何轻松把3方监控方案集成到容器服务。
1.
OneAPM CI 简介
Cloud Insight 集成了数十种互联网流行基础组件的监控,只需要进行最小化的配置就可以实现复杂的基础组件监控, 免除了传统基础组件监控中的复杂流程。一切就只有两步,安装探针,查看仪表盘。
2.
集成OneAPM和阿里云容器服务应用
2.1
OneAPM相关准备
在http://www.oneapm.com/上注册一个OneAPM帐号。
登录OneAPM,选择CI,点击左侧菜单条->平台->平台,选择添加平台。平台添加示例里包含LICENSE_KEY,记录LICENSE_KEY。
2.2
在阿里云容器应用中安装One APM agent
方法一:使用编排模版创建容器
在容器服务页面,选择模版编排,我的模版,点击创建,然后使用模版创建应用。模版示例如下。
OneAPM:
image: 'oneapm/docker-oneapm-ci-agent:latest'
volumes:
- '/var/run/docker.sock:/var/run/docker.sock:rw'
- '/proc/:/host/proc/:ro'
- '/sys/fs/cgroup/:/host/sys/fs/cgroup:ro'
environment:
- LICENSE_KEY=${key}
labels:
aliyun.global: 'true'
restart: always
Note1: 为了隐藏LICENSE_KEY, 采用模版变量设置license,在使用模版创建应用的时候再输入key值。
Note2: 使用阿里云容器服务提供的标签aliyun.global,并设置为true,可以将该监控探针部署在集群的每一个节点中。当集群增加节点时,该监控探针会自动部署到新节点上。
Note3: 在模版中可以加入你需要的其他组件镜像等,本文旨在介绍OneAPM CI agent 镜像,因此省略其他。
方法二:直接创建容器
登录容器服务管理控制台,选择应用,点击创建应用。
输入应用相关信息,点击使用镜像创建。
在应用配置页面,填写如下信息,点击创建并部署。
镜像名称:oneapm/docker-oneapm-ci-agent
环境变量:
LICENSE_KEY [见2.1]
数据卷:
/var/run/docker.sock /var/run/docker.sock rw
/proc/ /host/proc/ ro
/sys/fs/cgroup/ /host/sys/fs/cgroup ro
点开更多设置,配置aliyun.global标签,值为true。
One APM CI平台此时已经展示上面添加的包含OneAPM CI agent的容器相关监控数据。
Note4: 如果你还想让用OneAPM获取阿里云平台其他的监控信息,请看2.3。
2.3
连接阿里云
登录OneAPM,点击左侧菜单条->设置->配置平台服务,选择所有,点击阿里云。根据下面的界面填入阿里云控制台提供的AccessKeys,点击保存。
Note5: 这个时候你阿里云帐号下的所有的ECS,RDS实例都已经被监控,CI平台界面可以看到相关信息。
2.4
查看监控数据
docker 监控数据
system相关数据
更多OneAPM CI的功能此处就不多做介绍了,详情参见oneapm文档。
2.5
相关链接
https://cloud.oneapm.com/
http://docs-ci.oneapm.com/
https://hub.docker.com/r/oneapm/docker-oneapm-ci-agent/builds/
https://hub.docker.com/r/oneapm/docker-oneapm-ci-agent/
3.
总结
容器技术一次构建到处部署的特点,大大减少了开发测试和运维人员搭建环境的时间人力开销。阿里云容器服务更简化了容器集群的创建和管理,并且优化了云端容器应用的生命周期管理。
容器服务作为一个开放的平台,可以支持三方监控、日志、存储等扩展。 利用Docker镜像和Compose模版,就可以非常简单地地把OneAPM CI Agent部署到阿里云容器服务的每个集群节点上,并且随着集群伸缩,将Agent动态安装配置到新节点上。通过这种方式可以方便的把容器服务集成到企业现有的监控框架之中。