项目如何用prometheus监控华为云资源(应用实践)

举报
zhongjun2 发表于 2020/01/07 10:41:26 2020/01/07
【摘要】 首先华为云已经有华为云cloudeye监控系统为什么还要用prometheus对xx系统资源进行监控呢?Cloudeye监控系统只对华为云本身的云服务资源进行监控,比如vpc网络流量是否超过阈值,RDS总的内存占用率多少,但是对部署在云上的单个应用程序的内省监控(状态、内部组件)、探针监控等却没有涉及。 其次为什么这么多开源的监控软件为什么选prometheus。Prometheus原生支持...

首先华为云已经有华为云cloudeye监控系统为什么还要用prometheus对xx系统资源进行监控呢?

Cloudeye监控系统只对华为云本身的云服务资源进行监控,比如vpc网络流量是否超过阈值,RDS总的内存占用率多少,但是对部署在云上的单个应用程序的内省监控(状态、内部组件)、探针监控等却没有涉及。

 

其次为什么这么多开源的监控软件为什么选prometheus

Prometheus原生支持k8s监控,k8s官方原生为prometheus提供了监控接口,能够很好的完成监控工作。

当然prometheus还支持众多生态对接,比如华为云资源,比如grafana等等。

Prometheus有强大的数据存储和查询能力 

 

下面主要介绍在xx项目中如何用prometheus各个组件监控华为云资源。

1578365044825476.png

在华为云中搭建了用户WEB系统,luckin系统和wms系统,其中每套系统都用到了 ECS搭建web服务appRDS mysql存储该系统数据、Redis缓存中间数据、CSS云搜索服务等。

在上图可以看到使用容错架构为该系统提供了监控,每个prometheus监控两个系统上的服务,所有prometheus服务器会向所有的alertmanager发送报警,alertmanager负责去除重复数据并通过集群共享警报状态。

 

展开来看prometheus监控某个系统服务的具体流程实现:

 

1578365103621928.png

注: 这里只体现了对华为云资源的监控部分,不包括对应用程序的内省监控

 

对于华为云资源,使用了两种exporter进行监控,对于ECS VM虚拟机,使用社区自带的node exporter进行监控。对于RDSCSSELB等无法使用社区exporter监控的资源使用cloudeye exporter进行监控。

 

Node exporter监控流程(黄色123…):

使用prometheus文件发现方式

1、  prometheus中配置需要被监控的文件(targets.json),Prometheus默认每5m重新读取一次文件内容

scrape_configs:

- job_name: 'file_ds'

  file_sd_configs:

  - files:

    - targets.json

2、  调用huaweicloud-prometheus-discover程序调用list API去发现需要被监控的ECS VM虚拟机ipport

3、  返回ECS VM虚拟机ip及属性(名称、状态、region等)

4、  将虚拟机信息写入targets.json文件

 

cloudeye exporter流程(红色123

1、  prometheus发起pull请求

也就是发送http://localhost:8087/metrics?services=SYS.VPC,SYS.ELB 请求,services表示需要监控哪些服务。

2、  Cloudeye exporter发送apiCES服务获取监控的指标及数值信息

3、  Cloudeye exporter获取到监控信息后返回到prometheus,由prometheus进行存储。

 

 

 

参考链接:

https://github.com/huaweicloud/cloudeye-exporter

https://github.com/huaweicloud/huaweicloud-prometheus-discovery


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。