从指标到洞察:实现Prometheus告警在Grafana中的全景可视化

前言

随着系统架构日益复杂,监控已不再是简单地“看数字”,而是要从海量指标中快速识别异常、理解上下文并做出响应。Prometheus作为云原生生态的核心监控组件,能够高效采集指标并基于规则触发告警;而Alertmanager负责对告警进行去重、分组与通知。然而,这些告警信息若仅以邮件或消息形式呈现,往往缺乏全局视角和历史脉络,难以支撑高效的故障分析。

Grafana的强大之处,正在于将这些分散的告警事件转化为直观、可交互的可视化视图。通过合理配置数据源、查询语句与面板布局,我们不仅能看到当前哪些告警正在触发,还能回溯告警发生的时间线、关联相关指标趋势、按严重等级分类统计,甚至与日志、链路追踪形成联动。本文将系统讲解如何在Grafana中实现Prometheus告警的全景可视化——从基础查询到高级注解,从实时状态面板到历史分析看板,帮助你构建一个真正“看得清、查得快、判得准”的监控告警驾驶舱,让每一次告警都成为运维决策的有力起点。

image-20251202104350552

1.部署前介绍

我们构建的是一套基于Prometheus + Grafana + Alertmanager的完整监控告警系统。这三者紧密协作、各司其职,共同构成了云原生环境下高度可靠、可视化强、响应及时的可观测性解决方案——缺一不可

  • Prometheus是整个系统的核心数据引擎,负责主动拉取目标服务的指标,存储时间序列数据,并根据预定义的告警规则实时评估系统状态。一旦指标满足触发条件,Prometheus便会生成告警事件并推送给Alertmanager。
  • Alertmanager专门用于处理这些告警事件。它负责对来自 Prometheus 的告警进行去重、分组、抑制(inhibition)和静默(silence),并根据配置的路由策略将告警通过邮件、Slack、Webhook、企业微信等渠道通知到相关人员。它是告警“分发中枢”,确保关键问题不被遗漏,同时避免告警风暴。
  • Grafana则是系统的“可视化窗口”。它通过连接Prometheus数据源,将原始指标与告警状态以图表、表格、状态面板等形式直观呈现。借助Grafana,我们不仅能实时查看当前正在触发的告警,还能结合历史趋势、添加时间线注解、构建统一监控看板,真正实现从“数据”到“洞察”的转化。

本文所有操作均基于 Ubuntu 系统,后续将详细介绍如何在该环境下依次安装、配置并集成Prometheus、Alertmanager与Grafana,最终搭建一套功能完备、可公网访问(如需)且易于维护的开源监控告警平台。

配置prometheus使用alertmanager告警请看这篇文章,这篇文章有prometheus和alertmanager的安装步骤及配置过程:https://www.cpolar.com/blog/no-more-fear-of-being-woken-up-in-the-middle-of-the-night-implement-intelligent-alerts-with-prometheus-alertmanager

本文,我们着重于安装grafana及配置告警可视化~

2.ubuntu安装grafana实现监控可视化

首先关闭centos防火墙和selinux

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

安装grafana:

Ubuntu and Debian(64 Bit):

sudo apt-get install -y adduser libfontconfig1 musl
wget https://dl.grafana.com/enterprise/release/grafana-enterprise_12.1.0_amd64.deb
sudo dpkg -i grafana-enterprise_12.1.0_amd64.deb

Standalone Linux Binaries(64 Bit):

wget https://dl.grafana.com/enterprise/release/grafana-enterprise-12.1.0.linux-amd64.tar.gz
tar -zxvf grafana-enterprise-12.1.0.linux-amd64.tar.gz

Red Hat, CentOS, RHEL, and Fedora(64 Bit):

sudo yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-12.1.0-1.x86_64.rpm

OpenSUSE and SUSE(64 Bit):

wget https://dl.grafana.com/enterprise/release/grafana-enterprise-12.1.0-1.x86_64.rpm
sudo rpm -Uvh grafana-enterprise-12.1.0-1.x86_64.rpm

我用的是Ubuntu在这里:

sudo apt-get install -y adduser libfontconfig1 musl
wget https://dl.grafana.com/enterprise/release/grafana-enterprise_12.1.0_amd64.deb
sudo dpkg -i grafana-enterprise_12.1.0_amd64.deb

image-20251202104638176

启动grafana,并设置其开机自启:

systemctl restart grafana-server
systemctl enable grafana-server

查看已安装的grafana版本号:

grafana-cli -version

image-20251202110921063

浏览器打开服务器的3000端口,如:http://ip:3000/

ip:3000

image-20251202113836526

第一次登录,默认账号密码:admin/admin

image-20251202113858320

认证后修改密码:

image-20251202113955895

然后就登录成功啦!
image-20251202114409656

3.配置告警总览仪表盘

3.1下载数据源

Grafana本身不存储数据,它通过连接各种数据源(如Prometheus、MySQL、InfluxDB、Elasticsearch等)来获取监控数据,并将其可视化为图表、仪表盘等。

添加prometheus数据源(一共添加两个都是本文所需):

image-20251202144604339

下载完成后,我们添加所监控的prometheus地址:

image-20251202145014476

最后保存,这样我们就配置好了一个数据源:

image-20251202145047603

添加第二个数据源Prometheus AlertManager Datasource(采集告警使用):
image-20251202145148684

配置alertmanager地址:

image-20251202155734906

点击保存:

image-20251202145306360

3.2配置警告数量仪表盘

点右上角+号:

image-20251202150534205

点击“New dashboard” 创建一个全新仪表盘:

image-20251202150652191

开始创建新的仪表盘:

image-20251202150906905

我们先配置监控“当前告警数量”,选择prometheus数据源:

image-20251202150951020

点击到“code”:

image-20251202151132809

输入“count(ALERTS{alertname=”高ping丢包率”, severity=”warning”})”查询平告警数量,点击“Run queries”:

image-20251202151227848

当前告警数,显示出来了:

image-20251202152046878

为了让它更美观一点,我们接下来进行个性化配置,选择”Stat”:

image-20251202151701939

在Stat styles(统计样式)中的Text mode(文本模式)中选择“Value and name”:

image-20251202153237014

在Stat styles(统计样式)中的Color mode选择“Background Gradient”:

image-20251202153416483

选择居中:

image-20251202153537077

添加mappings,点击“Add Value mappings”:

image-20251202153650709

按照图操作:

image-20251202153812532

要是没有告警,就显示“暂无警告”:

image-20251202153855335

设置背景颜色:

image-20251202153941318

更改提示词:

image-20251202154050934

改后,保存:

image-20251202154133196

添加一个组:

image-20251202154208025

image-20251202154243298

可以调组件大小:

image-20251202154318538

3.3配置告警信息展示面板

继续添加仪表盘:

image-20251202155223751

数据源选择“Prometheus AlertManager Datasource”:

image-20251202155314091

image-20251202155512258

  • Receiver: .*

.* 是正则表达式,意思是“任意字符”,即不限定具体接收器名称(接受所有告警信息):

image-20251202160001201

改名改格式:

image-20251202160159022

“Transformations”(数据转换) 设置界面,用于对从数据源获取的原始告警数据进行处理和整理,以便更好地在面板中展示。

image-20251202160219015

添加下面3个:

  • Merge series/tables(合并多个数据帧)
  • Filter fields by name(按字段名过滤)
  • Organize fields by name(按名称组织字段)

image-20251202160328214

选择我们所需要的监控指标:

image-20251202160849815

重命名,自定义展示位置:

image-20251202160949283

效果:

image-20251202161012914

跟我继续丰富效果吧~

打开Column filter:

image-20251202161124958

对某个具体字段单独设置样式、颜色、显示方式等,而不影响其他字段。

image-20251202161229805

添加”告警时间“配置:

image-20251202161420890

image-20251202161455224

设置告警时间那列的宽度(自定义):

image-20251202161539653

添加”所需服务器“配置:

image-20251202161618605

设置自定义宽度:

image-20251202161719341

添加”服务类别“配置(同上):

image-20251202161823899

添加”告警状态“配置:

image-20251202161930512

为了让其更丰富更美观,如图操作:

image-20251202162207349

image-20251202162154105

添加”告警描述“配置:

image-20251202162355377

添加”告警概要“配置:

image-20251202162509620

全部完善后保存:

image-20251202162722733

回到主页,就会发现,告警已经清晰明了啦!

image-20251202162754710

那么现在问题来了,我们在公司可以清晰的看到我们的告警,那下班回家后,应该怎么办呢?

别急,cpolar来帮助你!

在本地部署Grafana时,常因缺乏公网IP而无法远程访问;通过结合内网穿透工具Cpolar,可快速将Grafana服务安全暴露到公网,实现临时或固定的外网访问能力。

4.安装cpolar实现随时随地开发

cpolar 可以将你本地电脑中的服务(如 SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。

❤️以下是安装cpolar步骤:

官网在此:https://www.cpolar.com

sudo curl https://get.cpolar.sh | sh

image-20250725093611926

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

sudo systemctl status cpolar

22e5adfaf290a17fc3384bb296055259

Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。

8a6698b1bf26d64ba3645827fbfb1c29

5.配置公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,本例使用了:grafana,注意不要与已有的隧道名称重复

    image-20250725100328538

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。

image-20250725100510154

访问成功。

image-20250725100605079

6.保留固定公网地址

使用cpolar为其配置二级子域名,该地址为固定地址,不会随机变化。

1b5b18459db4d0a167e947c02c3e14aa

点击左侧的预留,选择保留二级子域名,地区选择china top,然后设置一个二级子域名名称,我这里演示使用的是grafana3,大家可以自定义。填写备注信息,点击保留。

image-20250725100825658

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道grafana,点击右侧的编辑

image-20250724153922644

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名
  • 地区: China Top

点击更新

image-20250725100857991

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

image-20250725100931603

最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问本地部署的grafana页面,这样一个永久不会变化的二级子域名公网网址即设置好了。

image-20250725101019404

这样我们就可以随时随地查看直观的监控数据啦!

总结

本文系统介绍了如何将Prometheus产生的告警数据在Grafana中实现端到端的可视化,构建一个从原始指标采集、告警触发到全景展示与快速响应的可观测性闭环。通过配置Prometheus告警规则、集成Alertmanager,并在Grafana中添加数据源、创建仪表盘,结合表格、单值、状态时间线等面板类型,实现了对当前告警数量、告警详情列表、严重级别分布等关键信息的实时呈现。同时,利用字段过滤、数据转换和样式覆盖等功能,进一步提升了告警信息的可读性与操作效率。

最终,运维人员可通过一个统一、直观的 Grafana 告警总览页面,快速掌握系统健康状态,实现从“看到数据”到“获得洞察”的跃迁。

感谢您对本篇文章的喜爱,有任何问题欢迎留言交流。cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站

Share:

发表回复

目录

On Key

推荐文章