乐闻世界logo
搜索文章和话题

如何将 Prometheus 与 Grafana 集成,有哪些最佳实践?

2月21日 15:40

Prometheus 与 Grafana 的集成和最佳实践:

集成配置

  1. 添加 Prometheus 数据源
json
{ "name": "Prometheus", "type": "prometheus", "url": "http://prometheus:9090", "access": "proxy", "isDefault": true }
  1. 创建仪表盘
  • 使用变量实现动态查询
  • 使用模板变量实现多环境切换
  • 配置告警面板

常用查询示例

  1. CPU 使用率
promql
100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
  1. 内存使用率
promql
(1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100
  1. 磁盘使用率
promql
(1 - (node_filesystem_avail_bytes{fstype!="tmpfs"} / node_filesystem_size_bytes)) * 100
  1. 网络流量
promql
rate(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 集成

最佳实践

  1. 仪表盘组织

    • 按业务或系统分类
    • 使用文件夹管理
    • 添加描述和标签
  2. 查询优化

    • 使用 Recording Rules 预计算
    • 避免复杂查询
    • 合理设置刷新间隔
  3. 可视化技巧

    • 选择合适的图表类型
    • 使用阈值标注
    • 添加图例和注释
  4. 权限管理

    • 配置基于角色的访问控制
    • 限制敏感数据访问
    • 使用 API Key 自动化

导入社区仪表盘

  • 使用 Grafana 官方仪表盘库
  • 搜索关键词:Prometheus、Kubernetes、Node Exporter
  • 根据需求自定义修改
标签:Prometheus