Administrator
Administrator
发布于 2026-11-03 / 0 阅读
0
0

Prometheus 从入门到生产实践(02):安装与完整实验:从进程启动到真正采集成功

本篇是《Prometheus 从入门到生产实践》第 2 / 24 篇。配置以文中版本与环境前提为准,实验和故障均为教学场景。完整程序、配置及校验范围见配套实验包。

本篇先跑通一个最小系统:Prometheus 监控自己,再接入一个专用业务 exporter。目标是把“二进制启动、配置通过、端点就绪、采集成功、查到数据”分别验证。

本机 Prometheus 实验启动与验收

1. 获取适合平台的二进制

从 官方下载入口 选择符合操作系统、CPU 架构和支持策略的发行包,并核对官方校验和。Prometheus 包中包括 prometheus 与 promtool;Alertmanager 包还包括 amtool。记录实际版本,不要仅记录“最新版”。

以下命令以 Linux Shell、二进制已放入 PATH 为前提。Windows 使用相同参数调用相应 exe,Python 可使用选定环境的 python;终端激活和后台服务管理方式需按系统调整。

prometheus --version
promtool --version
python3 --version

在新建的练习目录解压配套配置和程序。这里不修改系统已有的 Prometheus 服务,不复用生产 TSDB 目录。

2. 阅读最小完整配置

保存或使用包内 prometheus.yml:

global:
  scrape_interval: 5s
  scrape_timeout: 3s
  evaluation_interval: 5s
  external_labels:
    environment: lab

rule_files:
  - a-recording.rules.yml
  - b-rules.yml

scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets: ['127.0.0.1:19090']
  - job_name: demo
    static_configs:
      - targets: ['127.0.0.1:19100']

alerting:
  alertmanagers:
    - static_configs:
        - targets: ['127.0.0.1:19093']

scrape_interval 控制采集周期,scrape_timeout 控制一次抓取等待,evaluation_interval 控制规则求值。一次求值与一次采集不保证严格同时发生;查询中的最新样本不等于此刻瞬间采到。

demo job 先写在配置里,下一篇启动 exporter 后才会成功;Alertmanager 未启动时,不能认为通知链路已经就绪。外部标签 environment 用于与外部系统交互,不会自动成为本地每条指标的普通查询标签。

3. 校验配置与启动

promtool check config prometheus.yml
prometheus --config.file=prometheus.yml --storage.tsdb.path=./data --web.listen-address=127.0.0.1:19090

第一个命令检查配置及相关资源;不会替你证明网络可达、权限正确或目标符合 exposition 格式。第二条在前台启动,使用自己独立的 data 目录。

另开终端:

curl --fail --max-time 5 http://127.0.0.1:19090/-/healthy
curl --fail --max-time 5 http://127.0.0.1:19090/-/ready

healthy 与 ready 表达不同状态;进程已存在也不代表回放和初始化已完成。再访问 /targets,看 prometheus 自身目标是否为 UP,最后查询 up{job="prometheus"}。

官方启动流程见 First steps,配置含义见 配置参考。

4. 增加教学 exporter

在另一个终端启动:

python3 demo_exporter.py

访问 http://127.0.0.1:19100/metrics,确认返回指标文本。等到至少一次采集后,demo 的 up 应变为 1。初始业务计数为 0 是正常的,还没有人为产生流量。

运行 python3 traffic.py --count 60 产生教学请求,其中每五次出现一次 500,每十次包含一次慢请求。这个过程能观察计数增长和延迟分布,具体延迟受调度影响,不把固定毫秒数作为精确验收条件。

5. 最常见的启动问题

端口冲突时查看本机监听,选择另一组端口并同步修改目标;配置语法错误时按 promtool 指向的位置修正;权限错误时核对数据目录的所属用户;目标 DOWN 时从 Prometheus 实际网络环境访问最终抓取 URL。

修改完整配置后需要按实例支持的方式重载,例如向已确认的 Prometheus 进程发送 SIGHUP;HTTP 生命周期接口只有启用对应选项才可用。不要为了方便把写管理接口暴露到不可信网络。

6. 实验验收与收尾

至少记录版本、配置路径、数据路径、监听地址、自监控 up 和 demo up。没有业务样本时先产生请求,不要立刻修改 PromQL。

前台实验结束可用 Ctrl+C 依次停止各程序。保留 data 方便下次观察历史;删除目录不是验证配置恢复的必要步骤。生产环境再把启动参数、运行用户、日志和重载策略纳入服务管理。


上一篇:全景与学习路线:先看清指标怎样成为告警 · 系列目录 · 下一篇:时间序列、类型与标签:指标设计先控制基数


评论