一、概述
阿里云容器监控服务日前正式上线,容器监控服务提供了非常简单快速地与第三方开源监控方案集成的能力。本篇文章就带领大家一起试用阿里云容器监控服务,并使用目前比较流行的第三方开源监控框架做集成,搭建自己的监控看板。
二、操作
1. 编排模板与注意事项
version: '2'
services:
#定义influxdb
influxdb:
image: tutum/influxdb:0.9
ports:
- "8083:8083" #暴露web界面端口
- "8086:8086" #暴露数据api Web接口端口
container_name: "influxdb"
labels:
#“aliyun.monitoring.addon.influxdb” label为固定写法,表明influxdb要与monitoring-service集成
#需要注意的是,label的取值为: 协议://container_name或者host_name:端口
aliyun.monitoring.addon.influxdb: "http://influxdb:8086"
grafana:
image: grafana/grafana:latest
ports:
- "3000:3000"
links:
- influxdb
上面的集成编排模板定义了influxdb和grafana两个服务,并且通过阿里云容器服务所支持的固定的label完成了与监控服务的对接,监控服务将采集到的容器运行状态数据自动写入influxdb中,开发者只需要使用该compose模板部署应用即可。
注意:目前容器服务监控集成只默认支持 influxdb 和 prometheus, label的写法为固定写法,分别为:aliyun.monitoring.addon.influxdb 或 aliyun.monitoring.addon.prometheus。其中我们这里使用 influxdb做集成,label的取值也需要注意,格式必须为:schema:container_name or host_name:port
2. 具体操作方式
- 使用编排模板创建应用,如下图:
- 应用创建成功后,查看应用的容器列表,然后复制grafana容器的IP和端口,如下图所示:
- 在浏览器地址栏中粘贴刚才复制的ip地址和端口,访问grafana 界面,创建属于自己的容器服务监控展板
- 登陆 grafana 系统以后,手动添加 Data Source,配置方式参考下图,点击 “save & test”
需要注意的是,配置Data Source 页面的 InfluxDB Details 中的 database 必须填写 "telegraf", Http Settings 的Url 填写 influxdb 的容器对外暴露的api Url。
- 配置好数据源以后,进入 dashboard 页面,选择新建,在页面最左边找到动态菜单,选择添加 grafaic,如下图所示:
- 配置图表的metrics,如下图所示:
注意: 1. 界面中的 “Panel data source” 数据源要选择刚才配置好的 telegraf 2.注意 Group By 部分点击后面的 “加号” 添加聚合维度,一般选择使用 serviceId 来聚合,聚合方式可以视情况选择 mean(平均值)或者 sum(求和)。
- 在按照上面的配置方式将其他监控指标配置好,最终效果如下图所示:
- 在指标较多的情况下,开发者可以使用阿里云容器服务提前配置好的dashboard 模板文件,直接使用grafana 的导入dashboard模板功能即可,这里给大家提供一个配置好的dashboard,大家下载附件以后,在grafana里面导入即可。 配置文件见附件
3、生产与安全
在实际生产环境中,本文中的模板需要做一些修改,其中influxdb的服务定义部分不要对宿主机暴露端口。应用创建成功后,grafana 系统要尽快修改admin用户名密码,限制不同账户的权限,确保自己生产监控数据的安全。
三、总结
目前阿里云容器监控服务能提供的监控集成功能还是比较方便的,后续可以把配置好的grafana 作为镜像直接在编排模板里面使用,会更加简便。
想了解更多容器服务内容,请访问 https://www.aliyun.com/product/containerservice