网站运维用Grafana做监控可视化的核心价值
Prometheus负责指标采集与存储,查询结果是一堆数字,直接看Prometheus自带界面很难发现趋势和异常。Grafana把Prometheus数据源变成可视化仪表盘,提供图表、告警、团队协作的集中入口,是网站运维/SRE搭建监控告警体系的常用组合。这篇文章讲清楚Grafana接入Prometheus、常用查询语法、仪表盘设计和告警配置的完整流程。
Grafana接入Prometheus数据源配置步骤
在Grafana左侧菜单进入Connections添加数据源,选择Prometheus,填入HTTP URL(如http://prometheus:9090),Prometheus type选Prometheus,保存后可用Explore验证。访问地址:
# docker-compose 起一套最小环境
services:
prometheus:
image: prom/prometheus:latest
ports: ["9090:9090"]
grafana:
image: grafana/grafana:latest
ports: ["3000:3000"]
environment:
- GF_SECURITY_ADMIN_PASSWORD=admin123
默认账号admin/admin。数据源接入后,用Explore面板执行PromQL(如up、rate(http_requests_total[5m])),能出图说明链路通。
Grafana监控仪表盘模板与PromQL面板配置
仪表盘由一行行面板组成,每个面板绑定一条PromQL。常用指标模板:
# 请求QPS
sum(rate(http_requests_total{job="api"}[5m])) by (instance)
# 错误率
sum(rate(http_requests_total{status=~"5.."}[5m])) by (instance)
/ sum(rate(http_requests_total[5m])) by (instance)
# P99延迟(配合histogram_quantile)
histogram_quantile(0.99, sum(rate(http_request_duration_seconds_bucket[5m])) by (le))
# 节点内存使用率
100 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) * 100
面板选Time series类型配PromQL即可。官方Dashboards社区(ID如1860、8919等)可以导入通用模板,但注意导入后核对数据源名称是否匹配,生产环境导入模板务必改掉无关指标。
Grafana告警规则配置与通知渠道接入
告警在Alerting里配置:创建Alert rule,选数据源和查询(如max(rate(…))>0.1持续5分钟),设置通知策略与联系人,告警接入钉钉/企微/飞书webhook或邮件。Grafana告警与Prometheus告警(Alertmanager)二选一,Grafana告警在告警规则界面操作更直观,便于给非运维同事做可视化授权。注意告警规则执行间隔和For时长要配合,避免瞬时抖动误报;告警消息模板里带上实例标签和当前值,值班人员不用跳页面就能判断严重程度。
Grafana监控大屏权限管理与高可用部署
多团队共用Grafana时用Team+Folder隔离权限,Dashboard归属按文件夹管理;只读账号给Viewer角色,禁止匿名可写。生产环境Grafana通过环境变量注入配置:GF_SERVER_ROOT_URL用于反向代理,GF_AUTH_LDAP_ENABLED对接统一登录。Grafana本身多实例部署时把告警状态存入PostgreSQL/MySQL,避免单机崩溃丢告警;在Kubernetes里用StatefulSet挂载持久卷,把Provisioning配置放在挂载目录自动加载。
原创文章,作者:小编,如若转载,请注明出处:https://www.yunthe.com/grafana-jian-kong-ke-shi-hua-shi-zhan-prometheus-shu-ju/