Prometheus 与 Grafana 的集成和最佳实践:
集成配置:
- 添加 Prometheus 数据源:
json{ "name": "Prometheus", "type": "prometheus", "url": "http://prometheus:9090", "access": "proxy", "isDefault": true }
- 创建仪表盘:
- 使用变量实现动态查询
- 使用模板变量实现多环境切换
- 配置告警面板
常用查询示例:
- CPU 使用率:
promql100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
- 内存使用率:
promql(1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100
- 磁盘使用率:
promql(1 - (node_filesystem_avail_bytes{fstype!="tmpfs"} / node_filesystem_size_bytes)) * 100
- 网络流量:
promqlrate(container_network_receive_bytes_total[5m])
变量配置示例:
yaml# 实例变量 instance: label_values(up, instance) # 命名空间变量 namespace: label_values(kube_pod_info, namespace) # 时间范围变量 interval: 30s, 1m, 5m, 15m, 1h
告警配置:
- 在 Grafana 中配置告警规则
- 支持多种通知渠道(邮件、Slack、Webhook)
- 可与 Prometheus Alertmanager 集成
最佳实践:
-
仪表盘组织:
- 按业务或系统分类
- 使用文件夹管理
- 添加描述和标签
-
查询优化:
- 使用 Recording Rules 预计算
- 避免复杂查询
- 合理设置刷新间隔
-
可视化技巧:
- 选择合适的图表类型
- 使用阈值标注
- 添加图例和注释
-
权限管理:
- 配置基于角色的访问控制
- 限制敏感数据访问
- 使用 API Key 自动化
导入社区仪表盘:
- 使用 Grafana 官方仪表盘库
- 搜索关键词:Prometheus、Kubernetes、Node Exporter
- 根据需求自定义修改