03.9练习 Prometheus实战

分类: Prometheus安装与配置

练习:Prometheus 实战

今天我们要动手实践:配置多个数据源、创建自定义查询、导出和导入配置。通过实践,我们可以巩固前面学习的知识。

练习目标

今天的练习目标是什么?

第一个目标:配置多个数据源。 配置 Prometheus 抓取多个目标,配置 Node Exporter,配置应用指标。

第二个目标:创建自定义查询。 查询系统指标,查询应用指标,创建复杂查询。

第三个目标:导出和导入配置。 导出 Prometheus 配置,导入 Prometheus 配置,版本控制配置。

练习环境:

使用 Docker Compose 部署环境,包含 Prometheus、Node Exporter、示例应用。这样我们可以完整地练习整个流程。

这就是今天的练习目标。

练习 1:配置多个数据源

任务是什么? 配置 Prometheus 抓取多个目标。

步骤是什么?

第一步:启动 Node Exporter。 使用 Docker Compose 启动 Node Exporter。

第二步:启动示例应用。 启动一个示例应用,暴露指标端点。

第三步:配置 Prometheus 抓取这两个目标。 在 prometheus.yml 中添加抓取配置。

配置文件示例:

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']

  - job_name: 'node-exporter'
    static_configs:
      - targets: ['node-exporter:9100']
        labels:
          instance: 'server-1'
          environment: 'production'

  - job_name: 'example-app'
    static_configs:
      - targets: ['example-app:8080']
        labels:
          instance: 'app-1'
          environment: 'production'
          service: 'api'

这个配置展示了如何配置多个数据源。配置了 Prometheus 自己、Node Exporter、示例应用。

验证步骤:

这就是第一个练习。

练习 2:创建自定义查询

任务是什么? 创建自定义 PromQL 查询。

步骤是什么?

第一步:查询系统指标。 查询 CPU 使用率、内存使用率等。

第二步:查询应用指标。 查询 QPS、错误率、延迟等。

第三步:创建复杂查询。 组合多个查询,创建更复杂的查询。

第四步:保存常用查询。 将常用查询保存下来,方便以后使用。

查询示例:

  • 查询系统 CPU 使用率:
    100 - (avg(rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
  • 查询系统内存使用率:
    (1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100
  • 查询应用 QPS:
    sum(rate(http_requests_total[5m])) by (method)
  • 查询应用错误率:
    sum(rate(http_requests_total{status=~"5.."}[5m])) / sum(rate(http_requests_total[5m])) * 100
  • 查询应用 P95 延迟:
    histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket[5m])) by (le))

查询练习:

  1. 创建一个查询,显示所有服务的 QPS。 使用
    sum(rate(...)) by (service)
  2. 创建一个查询,显示所有服务的错误率。 使用错误请求数除以总请求数
  3. 创建一个查询,显示系统资源使用情况。 使用 CPU、内存、磁盘指标

这就是第二个练习。

练习 3:导出和导入配置

任务是什么? 导出和导入 Prometheus 配置。

步骤是什么?

第一步:导出当前配置。 将当前配置保存到文件。

第二步:修改配置。 修改配置文件,添加新的目标。

第三步:导入新配置。 将新配置导入到 Prometheus。

第四步:验证配置。 验证配置是否正确。

导出配置:

  • 使用 docker-compose:
    docker-compose exec prometheus cat /etc/prometheus/prometheus.yml > prometheus.yml.backup
  • 使用 curl:
    curl http://localhost:9090/api/v1/status/config > prometheus.yml.backup

导入配置:

  • 使用 docker cp:
    docker cp prometheus.yml.new prometheus:/etc/prometheus/prometheus.yml
  • 重载配置:
    curl -X POST http://localhost:9090/-/reload

版本控制:

使用 Git 管理配置:

  • 初始化仓库:
    git init
  • 添加配置:
    git add prometheus.yml
  • 提交配置:
    git commit -m "Initial Prometheus config"
  • 创建分支:
    git checkout -b feature/add-new-target

这就是第三个练习。

练习总结

让我们总结一下今天的练习。

我们完成了什么?

  • 配置了多个数据源。 配置了 Prometheus 自己、Node Exporter、示例应用。
  • 创建了自定义查询。 查询了系统指标、应用指标,创建了复杂查询。
  • 导出了配置文件。 将配置保存到文件。
  • 导入了新配置。 将新配置导入到 Prometheus。

关键收获:

  1. 掌握了 Prometheus 配置方法。 学会了如何配置 Prometheus 抓取多个目标。
  2. 掌握了 PromQL 查询语言。 学会了如何创建自定义查询。
  3. 掌握了配置管理方法。 学会了如何导出和导入配置。
  4. 掌握了版本控制方法。 学会了如何使用 Git 管理配置。

下一步:

继续学习 Grafana 的使用,学习如何创建 Dashboard。

本节小结

在本节中,我们完成了 Prometheus 实战练习:

第一个是配置多个数据源。 掌握 Prometheus 配置方法。学会了如何配置 Prometheus 抓取多个目标。

第二个是创建自定义查询。 掌握 PromQL 查询语言。学会了如何创建自定义查询。

第三个是导出和导入配置。 掌握配置管理方法。学会了如何导出和导入配置。

第四个是版本控制。 掌握 Git 管理配置。学会了如何使用 Git 管理配置。

练习流程: 练习目标 → 配置数据源 → 创建查询 → 导出导入配置 → 版本控制 → 练习总结。

这就是 Prometheus 实战练习。通过实践,我们巩固了前面学习的知识。

在下一节,我们将学习 Prometheus 最佳实践。学习配置和管理的最佳实践。