使用 Grafana 展示阿里云监控指标

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
云监控,每月短信1000条
简介: 本文介绍使用 Grafana 展示阿里云监控指标的方法,并提供了使用 helm chart 一键部署包含阿里云监控 dashboard 的 Grafana-Server。

前言

对于阿里云用户来说,阿里云监控是一个很不错的产品,首先它在配额内使用是免费的!免费的!免费的!重要的事情说三遍。他的功能类似于 zabbix,但是比 zabbix 提供了更多的监控项,基本上在云上使用的资源都可以通过云监控来实时监控。而它提供的开箱即用方式,天然集成云资源,并提供多种告警方式,免去了监控与告警系统搭建与维护的繁琐,并且减少了资源的消耗,比购买 ECS 自己搭建 zabbix 要少消耗很多资源。同时阿里云监控和阿里云其他服务一样,也提供了比较完整的 OpenApi 以及各种语言的 sdk,可以基于阿里云的 OpenApi 将其与自己的系统集成。我们之前也是这么做的,但是随着监控项的增加,以及经常需要在办公场地监控投屏的专项监控页,光凭我们的运维开发工程师使用 vue 写速度明显跟不上,而且页面的美观程度也差很多。

手写前端 VS Grafana

手写前端虽然可定制化程度更高,但是需要消耗大量精力进行调试,对于运维人员,哪怕是运维开发也是吃不消的(前端小哥哥和小姐姐是不会来帮你的,下图就是我去年拿 vue 写的伪 Grafana 展示页面,花费了大约一周时间在调整这些前端元素)。
image

Grafana 则标准化程度很高,展示也更加符合大众审美,某些定制化需求可以通过自定义 DataSource 或者 AJAX 插件的 iframe 模式完成。开发后端 DataSource 肯定就没有前端调整 css 那么痛苦和耗时了,整体配置开发一个这样的页面可能只消耗一人天就能完成。而在新产品上线时,构建一个专项监控展示页面速度就更快了,几分钟内就能完成。
image

关于阿里云监控

云监控(CloudMonitor)是一项针对阿里云资源和互联网应用进行监控的服务。

云监控为云上用户提供开箱即用的企业级开放型一站式监控解决方案。涵盖 IT 设施基础监控,外网网络质量拨测监控,基于事件、自定义指标、日志的业务监控。为您全方位提供更高效、更全面、更省钱的监控服务。通过提供跨产品、跨地域的应用分组管理模型和报警模板,帮助您快速构建支持几十种云产品、管理数万实例的高效监控报警管理体系。通过提供 Dashboard,帮助您快速构建自定义业务监控大盘。使用云监控,不但可以帮助您提升您的系统服务可用时长,还可以降低企业 IT 运维监控成本。

云监控服务可用于收集获取阿里云资源的监控指标或用户自定义的监控指标,探测服务可用性,以及针对指标设置警报。使您全面了解阿里云上的资源使用情况、业务的运行状况和健康度,并及时收到异常报警做出反应,保证应用程序顺畅运行。

关于 Grafana

Grafana 是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。由于云监控的 Grafana 还没有支持告警,所以我们这里只用了 Grafana 的可视化功能,而告警本身就是云监控自带的,所以也不需要依赖 Grafana 来实现。而我们的 Prometheus 也使用了 Grafana 进行数据可视化,所以有现成的 Grafana-Server 使用。

阿里云监控对接 Grafana

首先 Grafana 服务的部署方式这里就不做介绍了,请使用较新版本的 Grafana,最好是 5.5.0+。后文中也有我开源的基于阿里云云监控的 Grafana 的 helm chart,可以使用 helm 安装,并会直接导入云监控的指标,这个会在后文中介绍。

安装阿里云监控插件

进入插件目录进行安装

cd /var/lib/grafana/plugins/
git clone https://github.com/aliyun/aliyun-cms-grafana.git 
service grafana-server restart

如果是使用 docker 或者部署在 k8s 集群,这里也可以使用环境变量在 Grafana 部署的时候进行安装

...
spec:
  containers:
  - env:
    - name: GF_INSTALL_PLUGINS  # 多个插件请使用,隔开
      value: grafana-simple-json-datasource,https://github.com/aliyun/aliyun-cms-grafana/archive/master.zip;aliyun-cms-grafana
...

您也可以下载 aliyun-cms-grafana.zip 插件解压后,上传服务器的 Grafana 的 plugins 目录下,重启 grafana-server 即可。

配置云监控 DataSource

  1. Grafana 启动后,进入 Configuration 页面,选择 DataSource Tab 页,单击右上方的Add data source,添加数据源。
  2. 选中CMS Grafana Service,单击select
    image
  3. 填写配置项,URL 根据云监控所在地域填写,并且填写阿里云账号的 accessKeyId 和 accessSecret,完成后单击Save&Test
    image

创建 Dashboard

  1. 单击 Create -> Dashboard -> Add Query
  2. 配置图标,数据源选择之前添加的 CMS Grafana Service,然后文档中的配置项填入指标即可(这里要注意的是,云监控 API 给返回的只有实例 ID,并没有自定义的实例名称,这里需要手动将其填入 Y - column describe 中;而且只支持输入单个 Dimension,若输入多个,默认选第一个,由于这些问题才有了后续我开发的 cms-grafana-builder 的动机)。
    image
  3. 配置参考 云产品监控项
    image

使用 helm chart 的方式部署 Grafana

项目地址:https://github.com/sunny0826/cms-grafana-builder

cms-grafana-builder

由于上文中的问题,我们需要手动选择每个实例 ID 到 Dimension 中,并且还要讲该实例的名称键入 Y - column describe 中,十分的繁琐,根本不可能大批量的输入。

这就是我开发这个 Grafana 指标参数生成器的原因,起初只是一个 python 脚本,用来将我们要监控的指标组装成一个 Grafana 可以使用 json 文件,之后结合 Grafana 的容器化部署方法,将其做成了一个 helm chart。可以在启动的时候自动将需要的参数生成,并且每日会对所有指标进行更新,这样就不用每次新购或者释放掉资源后还需要再跑一遍脚本。

部署

只需要将项目拉取下来运行 helm install 命令

helm install my-release kk-grafana-cms \
--namespace {your_namespace} \
--set access_key_id={your_access_key_id} \
--set access_secret={your_access_secret} \
--set region_id={your_aliyun_region_id} \
--set password={admin_password}

更多详情见 github README,欢迎提 issue 交流。

指标选择

在部署成功后,可修改 ConfigMap:grafana-cms-metric,然后修改对应的监控指标项。

效果

ECS:

RDS:

EIP:

Redis:

后记

为了满足公司需求,后续还开发 DataSource 定制部分,用于公司监控大屏的展示,这部分是另一个项目,不在这个项目里,就不细说了,之后有机会总结后再进行分享。

相关实践学习
基于云监控实现的监控系统
通过阿里云云监控功能给非阿里云主机安装监控插件,从而实现对非阿里云主机的各项指标进行监控和管理,在配置报警规则和报警人的情况下,能对特定的场景做出报警反应通知到报警人的手机上。
目录
相关文章
|
29天前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第26天】Prometheus与Grafana是智能运维中的强大组合,前者是开源的系统监控和警报工具,后者是数据可视化平台。Prometheus具备时间序列数据库、多维数据模型、PromQL查询语言等特性,而Grafana支持多数据源、丰富的可视化选项和告警功能。两者结合可实现实时监控、灵活告警和高度定制化的仪表板,广泛应用于服务器、应用和数据库的监控。
153 3
|
28天前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第27天】在智能运维中,Prometheus和Grafana的组合已成为监控和告警体系的事实标准。Prometheus负责数据收集和存储,支持灵活的查询语言PromQL;Grafana提供数据的可视化展示和告警功能。本文介绍如何配置Prometheus监控目标、Grafana数据源及告警规则,帮助运维团队实时监控系统状态,确保稳定性和可靠性。
138 0
|
6月前
|
Prometheus 监控 Cloud Native
基于Prometheus和Grafana的监控平台 - 环境搭建
基于Prometheus和Grafana的监控平台 - 环境搭建
|
4月前
|
Prometheus 监控 数据可视化
Grafana 插件生态系统:扩展你的监控能力
【8月更文第29天】Grafana 是一个流行的开源平台,用于创建和共享统计数据的仪表板和可视化。除了内置的支持,Grafana 还有一个强大的插件生态系统,允许用户通过安装插件来扩展其功能。本文将介绍一些 Grafana 社区提供的插件,并探讨它们如何增强仪表盘的功能性。
273 1
|
4月前
|
存储 Prometheus 监控
Grafana 与 Prometheus 集成:打造高效监控系统
【8月更文第29天】在现代软件开发和运维领域,监控系统已成为不可或缺的一部分。Prometheus 和 Grafana 作为两个非常流行且互补的开源工具,可以协同工作来构建强大的实时监控解决方案。Prometheus 负责收集和存储时间序列数据,而 Grafana 则提供直观的数据可视化功能。本文将详细介绍如何集成这两个工具,构建一个高效、灵活的监控系统。
451 1
|
4月前
|
Prometheus 监控 Cloud Native
Grafana 入门指南:快速上手监控仪表盘
【8月更文第29天】Grafana 是一款开源的数据可视化和监控工具,它允许用户轻松地创建美观的仪表盘和图表,以便更好地理解和监控数据。无论您是需要监控系统性能指标、应用程序日志还是业务关键指标,Grafana 都能提供灵活而强大的解决方案。本指南将带领您快速上手 Grafana,包括安装、配置以及创建第一个监控面板。
660 1
|
4月前
|
Prometheus Kubernetes 监控
Kubernetes(K8S) 监控 Prometheus + Grafana
Kubernetes(K8S) 监控 Prometheus + Grafana
283 2
|
3月前
|
运维 Kubernetes 监控
Loki+Promtail+Grafana监控K8s日志
综上,Loki+Promtail+Grafana 监控组合对于在 K8s 环境中优化日志管理至关重要,它不仅提供了强大且易于扩展的日志收集与汇总工具,还有可视化这些日志的能力。通过有效地使用这套工具,可以显著地提高对应用的运维监控能力和故障诊断效率。
328 0
|
6月前
|
存储 监控 数据可视化
基于阿里云 OpenAPI 插件,让 Grafana 轻松实现云上数据可视化
本文旨在提供一个指导性的框架,帮助用户了解插件的安装、配置以及探索如何通过 Grafana 内的阿里云 OpenAPI 插件来对云上数据进行可视化和快速验证开发原型,加强数据可视化和云监控能力,助力开发速度。
33546 19
|
4月前
|
消息中间件 存储 Prometheus
Grafana Mimir:支持乱序的指标采集
Grafana Mimir:支持乱序的指标采集
59 4