Skip to main content
Monitors 通过 HTTP 查询 VictoriaLogs,支持查询日志原文、做统计分析,并基于结果进行阈值判定和数据存在/缺失判断。

1. 前置说明

查询模式

调用 /select/logsql/query 接口,返回二维表格数据。
VictoriaLogs 数据源最推荐使用”数据存在模式”,最适合日志场景。

2. 阈值判定模式 (Threshold)

查原文做统计两种查询模式都可以使用。下面分别举例说明。

2.1 查原文示例

查询语句示例:
得到的结果类似: 值字段配置为 total,标签字段配置为 level(或不配置,Monitors 会自动识别)。不同阈值不同级别的配置示例:
  • Warning:$A.total >= 50 或者简写为 $A >= 50(因为只有 total 这一个值字段)
  • Critical:$A.total >= 100 或者简写为 $A >= 100(因为只有 total 这一个值字段)

2.2 做统计示例

查询语句示例: _time:1d and level:ERROR | stats by (level) count(*) total 得到的结果遵从 Prometheus 协议格式:
不同阈值不同级别的配置示例:
  • Warning:$A.total >= 50 或者简写为 $A >= 50(因为只有 total 这一个指标字段)
  • Critical:$A.total >= 100 或者简写为 $A >= 100(因为只有 total 这一个指标字段)

2.3 恢复逻辑

3. 数据存在模式 (Data Exists)

这是最推荐的 VictoriaLogs 告警配置方式,因为日志场景更适合采用”有异常数据就告警”的模式。
此模式将过滤逻辑全部写在 VictoriaLogs 查询中,Monitors 只负责判断”是否有数据返回”。 查询语句示例(做统计模式):
其中 | filter total:>10 用于筛选出 total 大于 10 的数据。只要有满足该条件的数据行返回,Monitors 就会触发告警;如果没有任何数据行满足该条件,则认为告警恢复。

4. 数据缺失模式 (No Data)

数据缺失模式用于监控”原本应该持续产生的日志不再出现”的情况,常见于:
  • 应用实例不再产生日志(可能是进程退出)
  • 日志采集链路异常(如 agent 宕机或输出阻塞)

配置示例

查询语句(做统计模式):
场景:某个服务应该一直都有 INFO 日志输出,如果在最近 15 分钟内没有任何 INFO 日志产生,就触发告警。

5. 获取告警时日志原文

告警查询条件通常使用 “做统计” 模式,这种模式没有返回日志原文。Monitors 支持在告警规则中配置“关联查询”,用于在告警触发时额外查询日志原文。 “关联查询”的结果可以渲染在 “备注描述” 中,示例: