抓取任务是什么
每个抓取任务就是一个 job:声明目标来源、抓取路径、协议、鉴权、超时与附加标签。job 名会自动成为样本上的 job 标签,是查询与聚合最常用的维度。一个 job 通常对应一类同构目标,例如全部 Node 主机,或某个服务的全部实例。
基本信息
| 必需字段 | job_name 与目标来源(static_configs 或服务发现) |
|---|---|
| 常用可选项 | metrics_path、scheme、scrape_interval、scrape_timeout |
| 鉴权方式 | basic_auth、bearer_token、tls_config 等 |
| 默认取值 | metrics_path 为 /metrics,scheme 为 http |
典型使用场景
- 新增主机监控:为一个机房的全部主机建独立 job,方便按环境聚合
- 自定义端点:应用把指标暴露在非默认路径,需要指定 metrics_path
- 受保护端点:用 basic_auth 或 bearer_token 通过鉴权后采集
- 区分环境与团队:在 static_configs.labels 里打上 env、team 标签
- 异构目标:不同系统各自建 job,便于单独调整抓取间隔与超时
带鉴权与自定义路径的任务
带鉴权与自定义路径的任务
scrape_configs:
- job_name: app-metrics
metrics_path: /actuator/prometheus # 非默认指标路径
scheme: http
basic_auth:
username: metrics
password_file: /etc/prometheus/metrics.pw
static_configs:
- targets: ['10.0.1.21:8080', '10.0.1.22:8080']
labels:
env: prod
team: order常用字段
| 字段 | 作用 | 注意 |
|---|---|---|
| job_name | 任务名,成为 job 标签 | 同类目标共用一个 job,便于聚合 |
| metrics_path | 指标端点路径 | 写错表现为 404 与 up=0 |
| scheme | http 或 https | 自签证书要在 tls_config 里配置信任 |
| basic_auth | 基础认证 | 密码优先用 password_file 而非明文 |
| honor_labels | 冲突标签的取舍 | 默认 false,抓取端标签优先,开启需谨慎 |
目标源与标签的关系
static_configs 里的 targets 决定抓哪些地址,labels 决定这些样本额外带上什么标签。若主机批量增删但暂时没有自动发现,可以用文件服务发现把目标列表从主配置拆出去,由外部脚本或发布流程维护文件内容,Prometheus 会定期读取。
业务标签统一写在 static_configs.labels 或全局 external_labels,避免散落在各处后无法统一修改。
metrics_path 写错的典型表现是 404 与 up=0:先在目标机上用 curl 验证端点能返回指标文本,再回填配置。
新增任务后先看 Targets 页面确认目标状态与最近一次抓取耗时,这比直接看图表更快定位是采集问题还是数据问题。
抓取间隔与超时可以在单个任务上覆盖全局值:慢端点单独放宽,避免为了一个慢目标拖慢全局配置。