跳到主要内容

已有 Prometheus / VictoriaMetrics

把现有存储注册为数据源,抓取配置原样保留,让第一条规则在它上面跑起来——数据不用搬。

这条路的终点:一条告警规则在你现有的时序库上跑起来,抓取配置一行没改,数据一个字节没搬。 大约 10 分钟。

开始之前​

  • 夜莺已经起来了(还没起看快速开始);
  • 你的 Prometheus / VictoriaMetrics / Thanos / Mimir 的查询地址, 以及夜莺所在机器能访问这个地址;
  • 如果对方开了认证,准备好用户名和密码。

1. 注册数据源​

集成中心 → 数据源 → 新增 → Prometheus。

只有两个字段是必填的:

字段填什么
名称起个能认出来的名字,规则里按它选数据源
URL查询地址。表单里就列着各家的写法

各家的 URL 长这样(表单里的提示同款):

Prometheus http://localhost:9090/
Thanos Querier http://localhost:19192/
VictoriaMetrics 单机版 http://{vmselect}:8428/
VictoriaMetrics 集群版 http://{vmselect}:8481/select/0/prometheus/
Mimir Query Frontend http://mimir:9009/prometheus
M3 http://localhost:7201/

VictoriaMetrics、Thanos、Mimir 都实现了 PromQL HTTP API,所以都注册成 Prometheus Like 这一种类型——没有单独的 VictoriaMetrics 类型。接 VictoriaMetrics 时把表单最下面的 时序库类型 选成 VictoriaMetrics 即可,那个字段只影响仪表盘查询的优化方式。

开了 basic auth 的,在 认证 区填用户名密码——填原始密码, 不是 Prometheus web-config.yml 里那串 bcrypt 哈希。 自签证书打开「跳过 SSL 验证」。

点 测试连通性并保存。测试不通过不会入库,错误信息会直接告诉你卡在哪一步。 (旁边那个 不测试连通性直接保存 用于地址暂时不可达、想先把配置存下来的情况。)

Prometheus 数据源表单Prometheus 数据源表单

2. 保存之后会弹一个引导​

保存不会直接跳回列表,而是弹出一个引导:它当场替你回答「这个数据源现在能不能用」, 再给出接下来能做的几件事。

保存数据源后弹出的引导弹窗保存数据源后弹出的引导弹窗

数据体检​

弹窗打开时会真的往这个数据源发一条查询,结论分四种:

结论意味着该做什么
数据正常顺带报出指标个数、最近数据时间、查询耗时和一个示例指标往下走
连接正常,但没有发现任何指标地址是通的,库里没有数据多半是采集端还没往里写,不是数据源配错了
历史有数据,近期没有新写入指标在,但最近没有新样本去看采集器是不是停了
无法连接数据源地址、认证或网络不通点弹窗里的「返回修改配置」

体检只对 Prometheus 系数据源做,其它类型会显示「暂不支持数据体检」—— 去即时查询里实际查一次即可。

「下一步」的三个入口​

三个入口都在新标签打开,弹窗不会被冲掉:

  • 探索这些数据:带着体检查到的那个示例指标直接打开即时查询,落地就有图, 不用自己想第一条查询该写什么;
  • 去创建仪表盘 / 去创建告警规则:落到对应的列表页,顶部有一条 「数据源『xxx』已就绪」的横幅提示你先选业务组——这两处的新增入口都要求先有业务组上下文。

组件模板匹配​

如果这个数据源里有夜莺认识的组件,弹窗底部会把它们列出来,按组件给出「几盘几警」。

判定方式是哨兵指标:每个内置模板从自己的查询里挑一到三个代表性指标,拼成一条查询打到你的 数据源,最近五分钟有样本的就算「这个组件的数据在这儿」。所以列出来的都是你真的在采的组件, 不是一份全量模板清单。

点卡片进导入弹窗:

从数据源引导里导入组件模板从数据源引导里导入组件模板

选业务组,勾要导的仪表盘或告警规则,导入时会自动绑定到刚保存的这个数据源上。 另外两个导入入口和模板本身的说明见导入仪表盘与规则。

关掉之后还想再看​

集成中心 → 数据源,那一行的 数据状态 打开的是同一个弹窗,体检会重新跑一次。 数据源停用期间不体检,弹窗会直接说明这一点。

3. 确认真的能查到数据​

上一步点「探索这些数据」落地的就是这个页面。手动过来的话: 数据查询 → 指标,数据源选你刚建的那个,输入一条你确定有数据的 PromQL,比如:

up

有曲线出来,这条路就通了。查不到先别往下走—— 数据源连上了但查不到数据。

4. 写第一条规则​

告警通知 → 规则管理 → 新增,选中你的数据源,写一条会触发的查询。 先用一条必然成立的表达式,好确认链路是通的,比如:

up == 1

评估周期 15 秒、持续时长 60 秒、级别 S2,保存。

一分钟后去 告警通知 → 告警事件,应该能看到事件。 看到了,说明「数据源 → 查询 → 判定 → 事件」这条链路是通的。

确认之后记得把这条测试规则改成真实阈值或者删掉,不然它会一直响。

下一步​