Grafana 从入门到精通:打造企业级数据可视化与智能监控平台
常与 Prometheus、InfluxDB、Elasticsearch 等数据源结合,用于实时监控、业务分析与数据告警。点击 “Save & Test”,若成功会显示 “Data source is working”。点击右上角齿轮 → “JSON Model” → “Export”。图表上可实时刷新数据,支持设定时间范围(1m、1h、24h 等)。支持通过 “Log Panel” 展示实时日志
一、Grafana 是什么
Grafana 是一款开源的 数据可视化与分析平台,常与 Prometheus、InfluxDB、Elasticsearch 等数据源结合,用于实时监控、业务分析与数据告警。
一句话概括:
Grafana = 数据可视化 + 仪表盘管理 + 智能告警中心。
Grafana 是 DevOps、SRE、数据分析、运维可视化的核心工具之一。
二、核心特性
| 特性 | 描述 |
|---|---|
| 多数据源支持 | 兼容 Prometheus、Elasticsearch、MySQL、PostgreSQL、Loki 等 |
| 实时数据可视化 | 动态刷新图表、实时展示 |
| 丰富的图表组件 | 折线图、饼图、仪表盘、热力图、地理图 |
| 权限与组织管理 | 支持多租户、空间隔离 |
| 告警与通知 | 内置规则与外部通知系统(Slack、Email、Webhook) |
| 插件与扩展 | 丰富的社区插件支持 |
| API 与自动化 | 支持 REST API 调用与 JSON 导出导入 |
三、安装与启动
1. Linux 安装
sudo apt-get install -y adduser libfontconfig1 wget https://dl.grafana.com/oss/release/grafana-11.1.0.linux-amd64.tar.gz tar -zxvf grafana-11.1.0.linux-amd64.tar.gz cd grafana-11.1.0 ./bin/grafana-server web &
2. 访问
打开浏览器访问:
http://localhost:3000
默认账号密码:
admin / admin
首次登录会要求修改密码。
四、连接数据源
Grafana 支持多种数据源,包括:
| 数据源 | 用途 |
|---|---|
| Prometheus | 监控指标与告警 |
| Elasticsearch | 日志搜索与可视化 |
| InfluxDB | 时间序列数据库 |
| MySQL / PostgreSQL | 业务数据库 |
| Loki | 日志系统 |
| Graphite | 历史性能监控 |
连接 Prometheus
在 Grafana 左侧菜单 → Connections → Data sources → 选择 Prometheus → 填入:
http://localhost:9090
点击 “Save & Test”,若成功会显示 “Data source is working”。
五、创建第一个仪表盘
1. 新建 Dashboard
左侧菜单 → Dashboards → New → New Dashboard
点击 “Add a new panel” → 在 “Query” 区域输入 PromQL 语句:
rate(http_requests_total[1m])
右侧自动生成图表,点击 “Apply” 保存。
2. 修改图表类型
支持的类型包括:
-
Line(折线图)
-
Bar(柱状图)
-
Stat(数值)
-
Gauge(仪表盘)
-
Table(表格)
-
Pie(饼图)
-
Heatmap(热力图)
六、使用 PromQL 数据
示例:
sum(rate(node_cpu_seconds_total{mode!="idle"}[5m])) by (instance)
该语句表示每台机器过去 5 分钟的 CPU 使用率。
图表上可实时刷新数据,支持设定时间范围(1m、1h、24h 等)。
七、仪表盘参数化
通过 Variables 功能实现动态切换监控对象。
1. 创建变量
Dashboard → Settings → Variables → Add variable
示例:
Name: instance Type: Query Data source: Prometheus Query: label_values(node_cpu_seconds_total, instance)
在图表查询中使用:
sum(rate(node_cpu_seconds_total{instance=~"$instance"}[5m]))
可在页面下拉选择不同服务器。
八、可视化高级配置
单位与格式
可在 “Field → Standard options” 中设置单位:
-
bytes → 转换为 MB、GB;
-
duration → 秒、分钟;
-
percent → 百分比;
-
currency → 金额格式。
颜色与阈值
设置 “Thresholds”:
0 → 绿色 0.7 → 黄色 0.9 → 红色
用于直观显示指标健康状态。
九、告警配置
Grafana 的告警系统可在 Dashboard 内直接配置规则。
创建告警规则
-
打开某图表;
-
点击 “Alert → Create alert rule”;
-
设置条件:
WHEN avg() OF query(A, 5m, now) IS ABOVE 0.8 -
添加通知渠道(Email / Slack / Webhook);
-
点击 “Save”。
告警管理界面
左侧菜单 → Alerting → Alert rules
可集中查看所有规则与触发状态。
十、通知渠道配置
Email 告警
在配置文件 grafana.ini 中修改:
[smtp] enabled = true host = smtp.example.com:587 user = admin@example.com password = yourpassword from_address = grafana@example.com from_name = Grafana Alerts
重启服务后启用邮件发送。
Slack 告警
在 Slack 中创建 Webhook:
https://hooks.slack.com/services/XXXX/XXXX/XXXX
Grafana 配置:
Alerting → Contact points → New contact point → Slack
十一、仪表盘导入与导出
导入模板
Dashboard → Import → 输入 ID 或上传 JSON 文件。
常用模板 ID 示例:
| 模板名称 | ID |
|---|---|
| Node Exporter Full | 1860 |
| Prometheus 2.0 Overview | 3662 |
| Docker & Container Overview | 395 |
| PostgreSQL Metrics | 9628 |
导出 JSON
点击右上角齿轮 → “JSON Model” → “Export”。
参考案例:www.qmlik.cn
十二、与 Loki 日志系统集成
Grafana 可直接查看日志与指标。
Loki 数据源配置
URL: http://localhost:3100
示例查询:
{app="nginx"} |= "error"
支持通过 “Log Panel” 展示实时日志流,与指标图表联动。
十三、与 Tempo(分布式追踪)集成
Tempo 可展示请求的分布式调用链。
示例:
Data source: Tempo Trace ID: 自动获取或手动输入
Grafana 可关联 Metrics + Logs + Traces,形成 全栈可观测性体系。
十四、用户与权限管理
Grafana 支持多租户、多用户权限控制。
用户管理命令
创建用户:
grafana-cli admin create-user --name="dev" --role=Viewer --password="123456" --email="dev@company.com"
角色类型:
| 角色 | 权限 |
|---|---|
| Viewer | 仅查看仪表盘 |
| Editor | 编辑图表 |
| Admin | 管理数据源与用户 |
十五、使用 API 自动化管理
Grafana 提供 REST API,支持自动化导入 Dashboard 或配置。
示例:导入 Dashboard
curl -X POST http://localhost:3000/api/dashboards/db \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -d @dashboard.json
导出数据源配置
curl -H "Authorization: Bearer YOUR_API_TOKEN" http://localhost:3000/api/datasources
十六、组织与空间(Organization & Folder)
-
Organization:用于企业多团队隔离;
-
Folder:用于分类仪表盘。
示例层级:
Company ├── DevOps │ ├── System Monitor │ ├── CI/CD Pipeline ├── Business │ ├── Sales Overview │ ├── Customer Metrics
十七、Grafana + Prometheus 联动
典型查询语句:
avg(rate(http_requests_total[1m])) by (method)
可生成 HTTP 请求速率趋势图。
结合告警规则,可自动发送异常通知至 Slack / 邮件。
十八、Grafana 性能优化
-
限制查询时间范围(如最近 6 小时);
-
缓存常用查询;
-
减少刷新频率(默认 30s);
-
使用轻量数据源(Prometheus / Loki);
-
启用 gzip 压缩;
-
数据库迁移至 PostgreSQL 以支持持久存储。
十九、企业级部署架构
+-----------------------------+ | Grafana (Web UI) | |-----------------------------| | Prometheus | Loki | Tempo | |-----------------------------| | Exporters | Agents | +-----------------------------+
Grafana 统一管理可观测性数据,实现:
-
监控指标(Metrics)
-
系统日志(Logs)
-
链路追踪(Traces)
二十、企业实战应用场景
| 场景 | 实践方式 |
|---|---|
| 服务器监控中心 | Node Exporter + Prometheus + Grafana |
| Kubernetes 集群观测 | kube-state-metrics + cAdvisor |
| Web 服务健康监控 | HTTP 延迟、错误率图表 |
| 数据库性能分析 | PostgreSQL Exporter + 自定义查询 |
| 日志告警系统 | Loki + Slack 通知 |
| 业务指标看板 | 接入 MySQL / Elasticsearch 实现运营数据分析 |
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)