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

1. 前置说明

查询模式

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

2. 阈值判定模式 (Threshold)

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

2.1 查原文示例

查询语句示例:
得到的结果类似: 将标签字段配置为 level,值字段配置为 total。如果结果还包含日志样例等其他列,这些列会作为附加信息随告警携带。不同级别的阈值配置示例:
  • 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 就会触发告警;如果没有任何数据行满足该条件,则认为告警恢复。 数据存在模式同样支持配置恢复方式:默认「查询检测查不到数据即恢复」(即上述行为),也可以配置恢复查询,或选择「手工关闭」(告警保持活动,直到用户手工关闭)。 使用查原文模式时,建议选择 servicehost 等稳定字段作为标签字段,把 _time_msg 和其他日志上下文留作附加信息。数据存在模式不要求配置值字段。
标签字段留空时,除值字段外的所有返回字段都会成为标签。时间戳、日志正文等频繁变化的字段可能让每条日志形成不同的告警对象。
详细规则请参见查询结果字段映射

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

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

配置示例

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

恢复逻辑

无数据告警支持配置告警结束方式,决定告警如何结束:

5. 获取告警时日志原文

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