Grafana 是一个开源的数据可视化和监控平台,它能够连接多种数据源,创建丰富的可视化图表,并支持告警功能。本教程将帮助你掌握 Grafana 的核心功能和高级特性。
安装和配置
Docker 安装
使用 Docker 运行 Grafana 是最简单的方式:
docker run -d \
--name=grafana \
-p 3000:3000 \
grafana/grafana-enterprise
Docker Compose 安装
创建 docker-compose.yml
文件:
version: '3'
services:
grafana:
image: grafana/grafana-enterprise
ports:
- "3000:3000"
volumes:
- grafana-storage:/var/lib/grafana
environment:
- GF_SECURITY_ADMIN_PASSWORD=admin
- GF_USERS_ALLOW_SIGN_UP=false
volumes:
grafana-storage:
运行命令:
docker-compose up -d
基础配置
初始登录
- 访问
http://localhost:3000
- 默认用户名:
admin
- 默认密码:
admin
- 首次登录会要求修改密码
配置数据源
Grafana 支持多种数据源:
- 添加 Prometheus 数据源:
- Configuration > Data Sources > Add data source
- 选择 Prometheus
- URL:
http://prometheus:9090
- 点击 “Save & Test”
- 添加 InfluxDB 数据源:
- 选择 InfluxDB
- URL:
http://influxdb:8086
- Database:
your_database
- User & Password(如果需要)
创建仪表板
基础操作
- 创建新仪表板:
- 点击 “+” > Dashboard
- 选择 “Add new panel”
- 配置面板:
- 选择数据源
- 编写查询
- 设置可视化类型
- 配置面板选项
查询编辑器
不同数据源的查询示例:
- Prometheus 查询:
rate(http_requests_total[5m])
- InfluxDB 查询:
SELECT mean("value") FROM "cpu" WHERE $timeFilter GROUP BY time($__interval)
可视化类型
Grafana 提供多种可视化类型:
- 时间序列图:
- 适用于展示趋势数据
- 支持多种渲染模式
- 可配置阈值和告警
- 仪表盘:
- 显示单个指标
- 支持阈值颜色
- 可自定义范围
- 状态图:
- 展示系统状态
- 支持多种颜色映射
- 可配置阈值
- 热力图:
- 展示数据分布
- 支持自定义颜色
- 可调整桶大小
高级特性
变量和模板
- 定义变量:
name = hostname type = query query = label_values(node_cpu_seconds_total, instance)
- 使用变量:
node_memory_used_bytes{instance="$hostname"}
告警配置
- 创建告警规则:
- 编辑面板
- Alert 标签页
- 配置条件和通知
# 告警条件示例
WHEN avg() OF query(A, 5m, now) IS ABOVE 90
- 配置通知渠道:
- Alerting > Notification channels
- 支持 Email、Slack、WebHook 等
仪表板导入/导出
- 导出仪表板:
- Dashboard settings
- JSON Model
- 复制或下载 JSON
- 导入仪表板:
- ”+” > Import
- 粘贴 JSON 或上传文件
- 配置变量映射
用户和权限管理
用户管理
- 创建用户:
- Server Admin > Users
- New user
- 设置权限级别
- 角色配置:
- Admin:完全访问权限
- Editor:可以编辑仪表板
- Viewer:只能查看
团队管理
- 创建团队:
- Configuration > Teams
- New Team
- 添加成员
- 权限设置:
- 仪表板级别权限
- 文件夹级别权限
- 数据源权限
性能优化
查询优化
- 使用适当的时间间隔:
rate(http_requests_total[$__interval])
- 限制时间范围:
- 使用
$__timeFilter
- 合理设置刷新间隔
- 使用
缓存配置
- 查询缓存:
[caching] enabled = true ttl = 3600
- 图像渲染缓存:
[rendering] cache_ttl = 3600
最佳实践
仪表板组织
- 使用文件夹:
- 按应用分组
- 按团队分组
- 按环境分组
- 命名约定:
- 使用清晰的命名
- 包含必要的元信息
- 保持一致性
可视化建议
- 配色方案:
- 使用对比色
- 考虑色盲友好
- 保持一致性
- 布局优化:
- 重要面板置顶
- 相关面板分组
- 保持简洁
常见问题解决
1. 连接问题
- 检查数据源配置
- 验证网络连接
- 查看错误日志
2. 查询超时
- 优化查询语句
- 调整超时设置
- 使用缓存
3. 权限问题
- 检查用户权限
- 验证数据源访问权限
- 查看审计日志
总结
Grafana 提供了强大的数据可视化能力:
- 支持多种数据源
- 丰富的可视化类型
- 灵活的配置选项
- 完善的权限管理
通过本教程,你应该已经掌握:
- 基础安装和配置
- 仪表板创建和管理
- 高级特性使用
- 性能优化方法
- 最佳实践和问题排查
建议从简单的仪表板开始,逐步探索更多高级特性,打造适合你需求的监控可视化平台。