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

举报
zhongjun2 发表于 2020/01/07 10:41:26 2020/01/07
1.2w+ 0 0
【摘要】 首先华为云已经有华为云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

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

    全部回复

    上滑加载中

    设置昵称

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

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

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