阿里云
阿里云多端小程序中小企业获客首选
发表主题 回复主题
  • 1356阅读
  • 0回复

[产品讨论]Swarm mode 集群自定义监控

级别: 论坛粉丝
发帖
1227
云币
2325
容器监控服务集成了阿里云监控服务,为您提供涵盖容器、应用、集群、节点的监控与告警服务,满足了容器监控的基本需求。但是在很多业务场景中,您可能需要定义监控以满足您系统和应用的监控需求,所以容器监控服务在基础监控能力以外,还提供了两种自定义监控方式来允许您通过自己编写数据采集脚本或者自己暴露 HTTP 监控数据接口来上报自定义的监控数据。容器服务监控框架会按照每分钟采集一次的频率来执行脚本或者调用 HTTP 接口来采集数据。 ?L>}( {9  
前提条件 lJU]sZ9~b  
使用自定义监控功能之前,您必须将容器监控服务与第三方监控方案进行集成 (详细信息参见 第三方监控方案集成)。
WNiM&iU  
[backcolor=transparent]注意:目前,容器服务监控集成默认只支持 InfluxDB 和 Prometheus。
Pb/[945  
您的自定义监控数据会上报给您的 InfluxDB 或 Prometheus,然后再对接您的数据展示和分析服务。 z;EDyd,O>  
>F;yfv;  
使用自定义监控脚本上报监控数据 [vcSt5R=  
  1. Kl*/{&,P  
    构建 Docker 镜像,在镜像中添加自定义的数据采集脚本。 Vpf7~2[q%  
    采集脚本的输出数据必须遵守 InfluxDB 的数据格式协议,如下所示。[backcolor=transparent] weather[backcolor=transparent],[backcolor=transparent]location[backcolor=transparent]=[backcolor=transparent]us[backcolor=transparent]-[backcolor=transparent]midwest temperature[backcolor=transparent]=[backcolor=transparent]82[backcolor=transparent] [backcolor=transparent]1465839830100400200
  2. [backcolor=transparent] [backcolor=transparent]|[backcolor=transparent]    [backcolor=transparent]--------------------[backcolor=transparent] [backcolor=transparent]--------------[backcolor=transparent]  [backcolor=transparent]|
  3. [backcolor=transparent] [backcolor=transparent]|[backcolor=transparent]             [backcolor=transparent]|[backcolor=transparent]             [backcolor=transparent]|[backcolor=transparent]             [backcolor=transparent]|
  4. [backcolor=transparent] [backcolor=transparent]|[backcolor=transparent]             [backcolor=transparent]|[backcolor=transparent]             [backcolor=transparent]|[backcolor=transparent]             [backcolor=transparent]|
  5. [backcolor=transparent] [backcolor=transparent]+-----------+--------+-+---------+-+---------+
  6. [backcolor=transparent] [backcolor=transparent]|[backcolor=transparent]measurement[backcolor=transparent]|,[backcolor=transparent]tag_set[backcolor=transparent]|[backcolor=transparent] [backcolor=transparent]|[backcolor=transparent]field_set[backcolor=transparent]|[backcolor=transparent] [backcolor=transparent]|[backcolor=transparent]timestamp[backcolor=transparent]|
  7. [backcolor=transparent] [backcolor=transparent]+-----------+--------+-+---------+-+---------+
Ny 7vId  
更详细的数据格式协议,参见 InfluxDB 数据协议 Line Protocol uS{WeL6%  
登录 容器服务管理控制台,使用编排模板创建应用,使用 aliyun.monitoring.script 标签声明监控服务用于采集数据的脚本。 ;C+ _KS  
示例模板如下所示:
  1. [backcolor=transparent]custom[backcolor=transparent]-[backcolor=transparent]script[backcolor=transparent]:
  2. [backcolor=transparent]  image[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]'您自己的镜像仓库地址'
  3. [backcolor=transparent]  labels[backcolor=transparent]:
  4. [backcolor=transparent]    aliyun[backcolor=transparent].[backcolor=transparent]monitoring[backcolor=transparent].[backcolor=transparent]script[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]"sh gather_mem.sh"
EZ)GW%Bm2  
aliyun.monitoring.script 定义了监控服务执行应用容器内什么命令来收集监控数据。对应的 label 配置方式如下所示。
  1. [backcolor=transparent]labels[backcolor=transparent]:
  2. [backcolor=transparent]  aliyun[backcolor=transparent].[backcolor=transparent]monitoring[backcolor=transparent].[backcolor=transparent]script[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]"执行脚本的命令"
e&F=w`F\  
打开 InfluxDB 的 web 端管理界面,查看以数据指标名称为表名的数据库表。 a*Ng+~5)6  
有关如何查看数据库表,参见 第三方监控方案集成 中的相关信息。 ]0myoWpi3  
使用自定义 HTTP 监控数据接口采集数据 v^1n.l %E  
  1. 构建 Docker 镜像,在应用中对外暴露 HTTP 接口。 8fQaMn4V  
    该接口输出监控数据。您可以自定义监控数据的格式,只需符合 JSON 语法即可。此外,由于系统不能分辨自定义的 HTTP 接口返回的 JSON 数据中哪些是数据指标字段,哪些是数据指标的元数据标签,所以您还需要另外一个配置项来指明 JSON 数据中哪些数据的属性是 tag。具体可参考 Telegraf JSON 数据格式
  2. 登录 容器服务管理控制台,使用编排模板创建应用。您需要在模板中添加 aliyun.monitoring.http 标签来声明采集数据的接口,使用 aliyun.monitoring.tags: "您自己的 tag 属性名 1, 您自己的 tag 属性名 2, ……"声明 HTTP 数据接口返回的数据字段中哪些属性是 tag。 pL{:8Ed  
    [backcolor=transparent]参考模板:[backcolor=transparent]nodejsapp[backcolor=transparent]:
  3. [backcolor=transparent]  command[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]"bash /run.sh"
  4. [backcolor=transparent]  ports[backcolor=transparent]:
  5. [backcolor=transparent]    [backcolor=transparent]-[backcolor=transparent] [backcolor=transparent]"3000:3000"[backcolor=transparent]
  6. [backcolor=transparent]  image[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]'您自己的镜像仓库地址'
  7. [backcolor=transparent]  labels[backcolor=transparent]:
  8. [backcolor=transparent]    aliyun[backcolor=transparent].[backcolor=transparent]monitoring[backcolor=transparent].[backcolor=transparent]http[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]"http://container:3000/metrics/data"
  9. [backcolor=transparent]    aliyun[backcolor=transparent].[backcolor=transparent]monitoring[backcolor=transparent].[backcolor=transparent]tags[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]"tag1,tag2"
^ &VN=Y6z  
[backcolor=transparent]nodejsapp 应用对外暴露的数据接口 http://container:3000/metrics/data 返回的数据如下所示:
  1. [backcolor=transparent]{
  2. [backcolor=transparent]"tag1"[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]"tag1value"[backcolor=transparent],
  3. [backcolor=transparent]"tag2"[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]"tag2value"[backcolor=transparent],
  4. [backcolor=transparent]"field1"[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]1[backcolor=transparent],
  5. [backcolor=transparent]"field2"[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]2[backcolor=transparent],
  6. [backcolor=transparent]"field3"[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]true[backcolor=transparent],
  7. [backcolor=transparent]"field4"[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]1.5
  8. [backcolor=transparent]}
5Q@4@b{C  
使用 aliyun.monitoring.tags: "tag1,tag2" 定义上报的 JSON 数据中,tag1 属性和 tag2 属性为上报数据的 tag。 h>&t``<  
打开 InfluxDB 的 web 端管理界面,查看以 httpjson_ 前缀加容器名称为表名的的数据库表。 =1% <  
例如,容器名称为 nodejsapp_nodejsapp_1,则 InfluxDB 中数据库表的表名为httpjson_nodejsapp_nodejsapp_1。 @d6N[?3;  
有关如何查看数据库表,参见 第三方监控方案集成 中的相关信息。 j'nrdr6n  
[ 此帖被反向一觉在2017-10-30 15:46重新编辑 ]
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
验证问题: 56 + 8 = ?
上一个 下一个
      ×
      全新阿里云开发者社区, 去探索开发者的新世界吧!
      一站式的体验,更多的精彩!
      通过下面领域大门,一起探索新的技术世界吧~ (点击图标进入)