跳到主要内容

已有日志库或数据库

用和指标同一套规则体系,对 ElasticSearch、Loki、ClickHouse、MySQL 这类日志库和数据库做告警。

这条路的终点:一条规则跑在你的日志库或业务库上,越界了就产生事件。 和指标告警是同一套规则体系,只是查询语言不同。大约 15 分钟。

开源版支持哪些​

类别类型查询方式
时序Prometheus、VictoriaMetrics、Thanos、MimirPromQL
时序TDengine、IoTDBSQL
日志ElasticSearch、OpenSearchDSL / Lucene
日志LokiLogQL
日志VictoriaLogsLogsQL
日志 / 分析ClickHouse、DorisSQL
数据库MySQL、PostgreSQLSQL

一共 11 种。列表以产品里 集成中心 → 数据源 → 新增 的实际选项为准。

1. 注册数据源​

集成中心 → 数据源 → 新增,选类型。不同类型要填的东西不一样:

  • ElasticSearch / OpenSearch:集群地址(可以填多个)、版本号,认证按需;
  • Loki:地址必须带 /loki 后缀,比如 http://loki:3100/loki,不带会直接被挡下来;
  • VictoriaLogs:地址即可;
  • ClickHouse:节点地址(host:port)、用户名、密码,协议选 native 或 http;
  • MySQL / PostgreSQL:地址、库名、用户名、密码。给一个只读账号就够了, 规则只会执行 SELECT;
  • TDengine:REST 地址(默认 6041 端口)加用户名密码。

点 保存并测试,测试不通过不入库。

2. 想清楚「查什么」​

日志和数据库的规则,本质是「按周期跑一个查询,把返回的数字和阈值比」。所以你要先想清楚:

  • 查询返回的是一个数(比如「最近 5 分钟 ERROR 条数」)还是一组数 (比如「按 service 分组的 ERROR 条数」);
  • 一组数的话,用哪个字段做分组——那个字段会变成事件的标签,决定同一类告警怎么合并。

SQL 类数据源要特别注意查询代价:规则是周期性执行的,一条要跑 30 秒的 SQL 每分钟跑一次会把库压垮。先在库上手动跑一遍,看清楚执行时间。

3. 写规则​

告警通知 → 规则管理 → 新增,数据源选你刚建的那个。表单会按数据源类型切换成对应的 查询编辑器——ES 是 DSL,Loki 是 LogQL,SQL 类就是 SQL 输入框。

设好评估周期、持续时长、级别,保存。

想先确认查询和阈值对不对,用规则页上的 试触发:它拿真实数据跑一遍, 把每个阶段的结果摊开给你看,不用等真的越界。

4. 验证​

告警通知 → 告警事件 看有没有事件。有事件说明「数据源 → 查询 → 判定 → 事件」通了。

下一步​