03.9、练习 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、示例应用。
验证步骤:
- 检查配置:
promtool check config prometheus.yml - 重载配置:
curl -X POST http://localhost:9090/-/reload - 查看目标:访问 http://localhost:9090/targets。应该能看到三个目标,状态都是 UP。
这就是第一个练习。
练习 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))
查询练习:
- 创建一个查询,显示所有服务的 QPS。 使用
sum(rate(...)) by (service) - 创建一个查询,显示所有服务的错误率。 使用错误请求数除以总请求数
- 创建一个查询,显示系统资源使用情况。 使用 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。
关键收获:
- 掌握了 Prometheus 配置方法。 学会了如何配置 Prometheus 抓取多个目标。
- 掌握了 PromQL 查询语言。 学会了如何创建自定义查询。
- 掌握了配置管理方法。 学会了如何导出和导入配置。
- 掌握了版本控制方法。 学会了如何使用 Git 管理配置。
下一步:
继续学习 Grafana 的使用,学习如何创建 Dashboard。
本节小结
在本节中,我们完成了 Prometheus 实战练习:
第一个是配置多个数据源。 掌握 Prometheus 配置方法。学会了如何配置 Prometheus 抓取多个目标。
第二个是创建自定义查询。 掌握 PromQL 查询语言。学会了如何创建自定义查询。
第三个是导出和导入配置。 掌握配置管理方法。学会了如何导出和导入配置。
第四个是版本控制。 掌握 Git 管理配置。学会了如何使用 Git 管理配置。
练习流程: 练习目标 → 配置数据源 → 创建查询 → 导出导入配置 → 版本控制 → 练习总结。
这就是 Prometheus 实战练习。通过实践,我们巩固了前面学习的知识。
在下一节,我们将学习 Prometheus 最佳实践。学习配置和管理的最佳实践。