使用prometheus和grafana打造监控平台

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
可观测监控 Prometheus 版,每月50GB免费额度
简介: prometheus是由SoundCloud开源的CNCF旗下的监控系统,是Google BorgMon监控系统的开源版本,提供了完善的监控和告警功能.prometheus自身并不提供所有的监控和告警功能,而是通过prometheus生态中的其他组件搭配共同完成,因为架构设计上的扩展性,目前prometheus能够支持基础资源资源、应用程序监控、中间件监控等众多场景,并且对于传统应用和设备也具备比较好的兼容性,正逐步成为容器监控的标准,在云原生的时代背景下更是首选。

prometheus是由SoundCloud开源的CNCF旗下的监控系统,是Google BorgMon监控系统的开源版本,提供了完善的监控和告警功能.

prometheus自身并不提供所有的监控和告警功能,而是通过prometheus生态中的其他组件搭配共同完成,因为架构设计上的扩展性,目前prometheus能够支持基础资源资源、应用程序监控、中间件监控等众多场景,并且对于传统应用和设备也具备比较好的兼容性,正逐步成为容器监控的标准,在云原生的时代背景下更是首选。

一、prometheus的优点

  1. 提供多维度的数据模型和灵活的查询方式,监控数据可以任意组合,提供PromQL和HTTP查询接口.
  2. 支持本地存储和第三方存储,例如OpenTSDB
  3. 定义开放数据指标标准,Pull为主+Push相结合的采集方式,应对多数场景
  4. 支持通过静态文件配置和动态发现机制发现监控对象,自动完成数据采集,Prometheus目前已经支持Kubernetes、etcd、Consul等多种服务发现机制
  5. 支持容器部署,支持云原生
  6. 支持联邦部署,支持大规模集群监控
  7. 大量的exporter组件可以开箱即用,减少工作量

二、prometheus架构设计

prometheus-architecture.png

以上为prometheus架构图,可以看到,prometheus  server是核心组件,它定时地从目标对象上pull  metrics,对于一些短周期的任务,允许将数据推送到Pushgateway,prometheus  server从Pushgateway上抓取数据指标.

数据存储支持本地存储和远端存储,目前远端存储支持OpenTSDB、InfluxDB和Elasticsearch等.

对于拉取数据指标的对象,可以有两种方式进行配置,一种是通过配置文件进行静态配置,另一种是支持ZooKeeper、Consul、Kubernetes等方式进行动态发现。

AlertManager  是独立于 Prometheus 的一个组件,在触发了预先设置在Prometheus 中的高级规则后,Prometheus 便会推送告警信息到  AlertManager,由AlertManager发送邮件、钉钉等告警信息.AlertManager支持高可用部署,为了解决多个AlertManager重复告警的问题,引入了Gossip,在多个AlertManager之间通过Gossip同步告警信息。

特别注意,prometheus架构数据采集选择pull的模式有一些明显的好处,一是主动拉取,不会类似推的模式一样容易造成被采集应用程序因为推送数据指标失败等情况而造成对应用程序本身的影响,二是更加灵活和容易扩展,只要提供的http接口符合prometheus定义的数据格式即可.

可以看到prometheus的设计保障了其灵活性,不管是中间件、网络还是应用服务,只要编写提供metrics的符合规范的接口以供prometheus   pull相关的数据即可实现灵活的监控,特别是关于应用服务的业务指标监控,只要编写切面统一收集数据或者埋点,就可以实现细粒度的监控,例如springboot应用集成prometheus实现JVM监控、业务指标监控,都是非常简单的事情。

另外,目前市场上存在大量的开箱即用的exporter组件,例如用于系统资源资源的node_exporter、用于mysql监控的mysqld_exporter、用于redis监控的redis_exporter等等。

三、安装使用prometheus

下载prometheus压缩包并解压缩,执行prometheus脚本即可启动:

tar xvfz prometheus-*.tar.gz
cd prometheus-*
./prometheus

访问http://127.0.0.1:9090,默认端口是9090,可以看到以下的页面,在默认情况下prometheus本身的指标也进行了收集,可以输入"up"点击Execute进行查询up指标,可以看到有指标名称,实例的IP和端口信息,job名称等。

prometheus-up.jpg

四、使用grafana进行监控的图形化展示

prometheus实现了一个灵活的监控数据采集方案,但是缺少UI不够直观,无法满足企业级的监控需求,基于此grafana应运而生。

Grafana是一个跨平台的开源的度量分析和可视化工具,可以将采集的数据进行可视化展示,配置告警。其内置多种图表、支持多数据源、安装部署简单,基本实现可开箱即用,应用十分广泛,主要特点有:

1、丰富的图表支持:具有丰富的仪表盘插件,支持多种开箱即用的图表,例如折线图、饼图、柱形图等等,还有官方和社区提供的内置多种dashboard,针对具体的应用场景可以快速导入,无需自己组织图表,具体可以查看
https://grafana.com/grafana/dashboards

2、丰富的数据源支持:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等;

3、通知提醒:以可视方式定义警报规则,在配置的规则下发送告警通知,页面上可以配置对应告警级别的不同颜色的图表。

4、图表和数据映射简单: 通过编写表达式,可以简单的实现图表的数据展示规则,并且可实现导入导出。

grafana的安装非常简单,下载对应的版本解压缩以后进入bin目录,执行grafana-server脚本即可,启动以后初始账号密码:admin/admin。


在使用之前添加对应的数据源,例如这里以添加prometheus数据源为例,点击settings->Data Sources->Add data source。

填写prometheus相关的IP和端口信息,点击Save&Tests

如果添加成功并且测试通过会有以下提示:

由于prometheus本身也收集了自身的指标,所以这里直接以prometheus为例演示如何使用grafana可视化监控指标。

以prometheus的一个指标
prometheus_http_requests_total为例,点击grafana面板左侧+号->create,创建一个面板,选择Add panel,在填写表达式,效果如下

这里是最简单的prometheus和grafana配合进行监控的案例,实际需要的情况下可以自己收集监控指标配置面板,实现一个全面的监控平台。

相关实践学习
通过可观测可视化Grafana版进行数据可视化展示与分析
使用可观测可视化Grafana版进行数据可视化展示与分析。
相关文章
|
1月前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第26天】Prometheus与Grafana是智能运维中的强大组合,前者是开源的系统监控和警报工具,后者是数据可视化平台。Prometheus具备时间序列数据库、多维数据模型、PromQL查询语言等特性,而Grafana支持多数据源、丰富的可视化选项和告警功能。两者结合可实现实时监控、灵活告警和高度定制化的仪表板,广泛应用于服务器、应用和数据库的监控。
216 3
|
19天前
|
数据采集 Prometheus 监控
监控堆外第三方监控工具Grafana
监控堆外第三方监控工具Grafana
28 5
|
19天前
|
存储 Prometheus 监控
监控堆外第三方监控工具Prometheus
监控堆外第三方监控工具Prometheus
38 3
|
22天前
|
存储 Prometheus 运维
在云原生环境中,阿里云ARMS与Prometheus的集成提供了强大的应用实时监控解决方案
在云原生环境中,阿里云ARMS与Prometheus的集成提供了强大的应用实时监控解决方案。该集成结合了ARMS的基础设施监控能力和Prometheus的灵活配置及社区支持,实现了全面、精准的系统状态、性能和错误监控,提升了应用的稳定性和管理效率。通过统一的数据视图和高级查询功能,帮助企业有效应对云原生挑战,促进业务的持续发展。
30 3
|
1月前
|
Prometheus 监控 Cloud Native
在 HBase 集群中,Prometheus 通常监控哪些类型的性能指标?
在 HBase 集群中,Prometheus 监控关注的核心指标包括 Master 和 RegionServer 的进程存在性、RPC 请求数、JVM 内存使用率、磁盘和网络错误、延迟和吞吐量、资源利用率及 JVM 使用信息。通过 Grafana 可视化和告警规则,帮助管理员实时监控集群性能和健康状况。
|
1月前
|
Prometheus 监控 Cloud Native
基于Docker安装Grafana和Prometheus
Grafana 是一款用 Go 语言开发的开源数据可视化工具,支持数据监控和统计,并具备告警功能。通过 Docker 部署 Grafana 和 Prometheus,可实现系统数据的采集、展示和告警。默认登录用户名和密码均为 admin。配置 Prometheus 数据源后,可导入主机监控模板(ID 8919)进行数据展示。
94 2
|
1月前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第27天】在智能运维中,Prometheus和Grafana的组合已成为监控和告警体系的事实标准。Prometheus负责数据收集和存储,支持灵活的查询语言PromQL;Grafana提供数据的可视化展示和告警功能。本文介绍如何配置Prometheus监控目标、Grafana数据源及告警规则,帮助运维团队实时监控系统状态,确保稳定性和可靠性。
174 0
|
4月前
|
Prometheus 监控 Cloud Native
【监控】prometheus传统环境监控告警常用配置
【监控】prometheus传统环境监控告警常用配置
【监控】prometheus传统环境监控告警常用配置
|
3月前
|
Prometheus 监控 Cloud Native
介绍如何使用Prometheus进行监控
介绍如何使用Prometheus进行监控
272 3
|
3月前
|
Prometheus 监控 Cloud Native
docker安装prometheus+Granfan并监控容器
【9月更文挑战第14天】本文介绍了在Docker中安装Prometheus与Grafana并监控容器的步骤,包括创建配置文件、运行Prometheus与Grafana容器,以及在Grafana中配置数据源和创建监控仪表盘,展示了如何通过Prometheus抓取数据并利用Grafana展示容器的CPU使用率等关键指标。
120 1