软件测试|简单易学的性能监控体系prometheus+grafana搭建教程

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
可观测监控 Prometheus 版,每月50GB免费额度
简介: 软件测试|简单易学的性能监控体系prometheus+grafana搭建教程

快速了解普罗米修斯

普罗米修斯是用 go 语言编写的软件并且利用了 go 语言的交叉编译特性编译成了纯二进制文件, 运行的时候不需要额外安装依赖。 直接从官网上下载就可以。 下载地址: https://prometheus.io/download/ 这里面除了普罗米修斯的主程序意外, 一些 额外的组件,比如 pushgateway, alertmanager 以及各种官方 exporter 的下载包都可以在这里找到。 由于我们现在部署普罗米修斯都是容器化部署的, 所以这里我选择用 docker 进行部署。

docker run --name=prometheus  -d -p 9090:9090 -v $(pwd)/prometheus.yml:/etc/prometheus/prometheus.yml  prom/prometheus

部署方式很简单, 只不过需要通过-v 来挂载一个配置文件到容器里。 至于这个配置文件, 大概张下面这个样子:

global:
  scrape_interval:     15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
    - targets: ['localhost:9090']
  - job_name: 'node_exporter'
    static_configs:
    - targets: ['localhost:9100']
  - job_name: 'mysql'
    static_configs:
    - targets: ['localhost:9104']
  - job_name: 'cadvisor'
    static_configs:
    - targets: ['localhost:8091']
  - job_name: 'pushgateway'
    static_configs:
    - targets: ['localhost:9091']
      labels:
        instance: pushgateway

上面便是一个普罗米修斯的配置文件 其中 global 是全局的配置,上面配置了我们每隔 15s 便向各个 exporter 抓取一次监控数据,而 scrape_configs 配置的是普罗米修斯主服务要去抓取的各个 exporter 的配置。 普罗米修斯是标准的 pull 架构, 主服务并不负责监控任务, 真正负责监控的是各种不同的 exporter。 比如要监控一个 linux 服务器的各项性能指标,则需要在那台服务器上部署一个 node_exporter。然后在普罗米修斯的配置文件上配置上这个 node_exporter 的地址即可。 普罗米修斯的主服务自然会周期性的去拉监控数据并保存在本地。 PS: 普罗米修斯本身就是一个时序数据库,所有监控数据都是带有时间戳的。 我们在普罗米修斯的 UI 上或者通过 grafana, HTTP 接口等查询监控数据的时候, 都是主服务直接查询本地的时序数据库返回的结果。 下面是服务启动后便可通过 9090 端口访问主服务的 UI 界面:

在这里插入图片描述

如图如果我们部署了在每台机器 上 都部署了 node_exporter, 就会通过 PromQL(普罗米修斯自己定义的一个类 SQL 语言,后面再讲)查询到当前的性能信息。 上图用了 node_load15 这个语句从所有 node_exporter 获取到的数据中查询到了当前所有机器的 15 分钟内 CPU 的平均负载。 至于部署 node_exporter 的方法也很 简单, 可以二进制包部署也可以 docker 部署。 就在上面的链接里能下载的到。

总用量 16524
-rw-r--r-- 1 work work    11357 5月  29 2019 LICENSE
-rwxr-xr-x 1 work work 16900416 5月  29 2019 node_exporter
-rw-r--r-- 1 work work      463 5月  29 2019 NOTICE

上面就是下载了 node_exporter 解压后的结果。 其中 node_exporter 就是个二进制文件 , 直接运行就可以了。

在这里插入图片描述

上面是普罗米修斯的架构图。 刚才说过普罗米修斯是 pull 架构, 主服务会根据配置的时间参数周期性的拉取各个 exporter 提供的接口来抓取数据。 但是这样的架构有两个缺陷:

  • 需要 exporter 是一个持续运行着的并且对外暴露 http 接口的服务, 可是有些时候我们的监控数据的收集不能满足这样的条件
  • 主服务周期性的抓取数据, 就会有事件遗漏的可能性。 比如我们要监控 k8s 集群中 pod 的事件, 如果有 pod 挂掉需要监控到这个数据。 但是很多 pod 的重启时间是很快的, 可能 10s 就完成了重启, 而普罗米修斯的主服务在 pod crash 的期间没有调用 exporter 抓取数据,那么这个事件就会遗漏掉监控不到。 PS:大部分的 exporter 的逻辑都是反应当前这一时刻的系统状态,不会保存历史状态。 所以一旦事件过去了, 主程序才来抓取 exporter, 就无法采样到这个事件的数据了。

基于以上两个原因, 普罗米修斯又推出了上图中右边的 pushgateway 和相关的 client。 pushgateway 可以理解为一种特别的 exporter, 主服务还是根据配置周期性的抓取数据。 只不过, pushgateway 本身并不监控数据,它的数据都来自使用普罗米修斯开源的 client 开发的程序上 。 这些程序不用像 exporter 一样需要是持续运行的服务,它可是任何形式的程序,只要它按自己的逻辑收集到监控数据后, 通过主动 push 的方式发送给 pushgateway 就好了。 通过这个机制就补全了普罗米修斯没有主动 push 机制的缺点。 在做测试项目的时候 , 我们往往在测试程序中把收集到的测试数据通过 push 到 pushgateway 上, 这样 就可以让测试自定义的监控能力无缝的对接到产品提供的普罗米修斯上了(产品里一般都是会部署 pushgateway 的)。

对接 grafana

普罗米修斯本身并不擅长可视化的能力, 所以对应的可视化报表一般都是交给 grafana。 所以可以先部署一个 grafana。

docker run --name grafana -d
-p 8000:3000 grafana/grafana

然后按照下面的步骤进行配置:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

granfa 的配置非常的复杂, 所以一般我们都是在社区找一个开源的模板 import 进来然后自己改吧改吧。 比如可以在https://grafana.com/grafana/dashboardsnode_exporter 的模板。然后引入到 grafana 中。比如我们搜到下面的模板,中搜到 把 id 复制过来,或者直接下载模板 json。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

通过如此配置就可以快速搭建一个可用的仪表盘了。

相关实践学习
通过可观测可视化Grafana版进行数据可视化展示与分析
使用可观测可视化Grafana版进行数据可视化展示与分析。
相关文章
|
19天前
|
存储 数据采集 Prometheus
Grafana Prometheus Altermanager 监控系统
Grafana、Prometheus 和 Alertmanager 是一套强大的开源监控系统组合。Prometheus 负责数据采集与存储,Alertmanager 处理告警通知,Grafana 提供可视化界面。本文简要介绍了这套系统的安装配置流程,包括各组件的下载、安装、服务配置及开机自启设置,并提供了访问地址和重启命令。适用于希望快速搭建高效监控平台的用户。
93 20
|
16天前
|
Prometheus 监控 Cloud Native
Prometheus+Grafana监控Linux主机
通过本文的步骤,我们成功地在 Linux 主机上使用 Prometheus 和 Grafana 进行了监控配置。具体包括安装 Prometheus 和 Node Exporter,配置 Grafana 数据源,并导入预设的仪表盘来展示监控数据。通过这种方式,可以轻松实现对 Linux 主机的系统指标监控,帮助及时发现和处理潜在问题。
79 7
|
21天前
|
Prometheus 运维 监控
Prometheus+Grafana+NodeExporter:构建出色的Linux监控解决方案,让你的运维更轻松
本文介绍如何使用 Prometheus + Grafana + Node Exporter 搭建 Linux 主机监控系统。Prometheus 负责收集和存储指标数据,Grafana 用于可视化展示,Node Exporter 则采集主机的性能数据。通过 Docker 容器化部署,简化安装配置过程。完成安装后,配置 Prometheus 抓取节点数据,并在 Grafana 中添加数据源及导入仪表盘模板,实现对 Linux 主机的全面监控。整个过程简单易行,帮助运维人员轻松掌握系统状态。
149 3
|
21天前
|
Prometheus 监控 前端开发
Grafana 安装配置教程,让你的 Prometheus 监控数据变得更美观
《Grafana安装配置教程,让你的Prometheus监控数据变得更美观》简介: Grafana是一个开源的度量分析与可视化工具,支持多种数据源(如Prometheus),提供丰富的可视化功能和警报机制。本文详细介绍了Grafana的安装、汉化方法及模板使用,帮助用户轻松创建美观、灵活的数据面板,并实现数据的协作与共享。通过Docker镜像、配置文件修改或替换前端页面等方式实现汉化,让用户更便捷地使用中文界面。此外,还提供了导入JSON格式模板的具体步骤,方便快速搭建仪表盘。
45 2
|
21天前
|
Prometheus Cloud Native Linux
Prometheus+Grafana新手友好教程:从零开始搭建轻松掌握强大的警报系统
本文介绍了使用 Prometheus 和 Grafana 实现邮件报警的方案,包括三种主要方法:1) 使用 Prometheus 的 Alertmanager 组件;2) 使用 Grafana 的内置告警通知功能;3) 使用第三方告警组件如 OneAlert。同时,详细描述了环境准备、Grafana 安装配置及预警设置的步骤,确保用户能够成功搭建并测试邮件报警功能。通过这些配置,用户可以在系统或应用出现异常时及时收到邮件通知,保障系统的稳定运行。
73 1
|
2月前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第26天】Prometheus与Grafana是智能运维中的强大组合,前者是开源的系统监控和警报工具,后者是数据可视化平台。Prometheus具备时间序列数据库、多维数据模型、PromQL查询语言等特性,而Grafana支持多数据源、丰富的可视化选项和告警功能。两者结合可实现实时监控、灵活告警和高度定制化的仪表板,广泛应用于服务器、应用和数据库的监控。
315 3
|
2月前
|
Prometheus 监控 Cloud Native
基于Docker安装Grafana和Prometheus
Grafana 是一款用 Go 语言开发的开源数据可视化工具,支持数据监控和统计,并具备告警功能。通过 Docker 部署 Grafana 和 Prometheus,可实现系统数据的采集、展示和告警。默认登录用户名和密码均为 admin。配置 Prometheus 数据源后,可导入主机监控模板(ID 8919)进行数据展示。
121 2
|
7月前
|
Prometheus 监控 Cloud Native
基于Prometheus和Grafana的监控平台 - 环境搭建
基于Prometheus和Grafana的监控平台 - 环境搭建
|
2月前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第27天】在智能运维中,Prometheus和Grafana的组合已成为监控和告警体系的事实标准。Prometheus负责数据收集和存储,支持灵活的查询语言PromQL;Grafana提供数据的可视化展示和告警功能。本文介绍如何配置Prometheus监控目标、Grafana数据源及告警规则,帮助运维团队实时监控系统状态,确保稳定性和可靠性。
290 0
|
5月前
|
Prometheus 监控 Cloud Native
prometheus学习笔记之Grafana安装与配置
prometheus学习笔记之Grafana安装与配置