【最佳实践】无数据告警配置

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 背景在对SLS的Logstore和Metricstore进行监控的过程中,有时候会出现一些无数据的情况,例如数据采集阶段出现故障Logtail采集异常、数据导入任务异常或者SDK写入数据出错等情况都有可能导致日志库中没有数据。业务系统出现问题例如用户的业务日志中有某个系统模块的日志,在一段时间内,由...

背景

在对SLS的Logstore和Metricstore进行监控的过程中,有时候会出现一些无数据的情况,例如

  • 数据采集阶段出现故障

Logtail采集异常、数据导入任务异常或者SDK写入数据出错等情况都有可能导致日志库中没有数据。

  • 业务系统出现问题

例如用户的业务日志中有某个系统模块的日志,在一段时间内,由于该系统模块出现故障,导致没有日志产生,从而在SLS的日志库中也没有相关的日志数据。

  • 服务器宕机

SLS也可以采集和存储指标类数据,如果被采集指标的服务器出现宕机的情况,那么就会导致时序库中出现没有数据的情况。

因此,监控SLS的存储库中无数据的情况,是保证数据成功上传到SLS的一个重要手段,本文将介绍无数据告警的常见配置方法。

操作步骤

方法一

SLS提供了无数据告警这个高级功能,当创建一个监控规则时,可以选择开启该功能,当查询分析语句执行的结果为空时就会触发无数据的告警。无数据告警的标注可以单独配置,并且当有数据时,依然走的是评估触发条件的逻辑,因此,开启这个功能后,不会影响原有的告警监测内容,只是在无数据时单独执行了一条逻辑。

  • 查询语句

在Metric库中选择时间范围为5分钟(相对),执行如下PromQL语句,查询5分钟内服务器的CPU使用率。

cpu_util{hostname="hostname0"}

image.png
  • 告警监控规则

基于上述语句的查询结果创建告警,检查频率设置为固定间隔1分钟,触发条件设置有数据匹配value > 80,表示当CPU使用率超过80%就会触发该告警。在高级配置中开启无数据告警,参考创建日志告警监控规则,严重度设置为中,表示当没有CPU的指标数据上传到SLS触发无数据告警。

image.png
  • 通知内容

当CPU的指标数据1分钟内没有上传到SLS时,就会触发无数据告警,钉钉群中的通知内容如下所示。

image.png

方法二

本方法不用开启无数据告警,而是创建一个专门用于监测是否有数据的告警。

  • 查询语句

选择时间范围为15分钟(相对),执行如下语句,查询15分钟内的日志条数。

* | select count(*) as cnt

  • 告警监控规则

基于上述语句的查询结果创建告警监控规则,设置触发条件有数据匹配cnt===0image.png

  • 告警通知

当日志库中15分钟内没有日志写入的时候,就会触发该告警,钉钉群中的告警通知如下。

image.png

常见问题

通过设置有特定条数据满足一定条件来表示无数据告警

想要创建无数据告警的时候,用户因为不知道有无数据告警这个高级功能开关,所以直接将触发条件设置成有特定条数据等于0来表示无数据的情况。(同样的还有设置为有特定条数据小于等于0有特定条数据小于1等情况)

image.png

在无数据的情况下,告警监控并不会走到判断有特定条数据这个评估逻辑中,只会去判断有没有开无数据告警这个功能,因此无数据的情况下上述的触发条件并不会触发告警。

开启无数据告警,没数据也没有触发告警

如果有分析语句,并且开启了无数据告警功能,那么在无数据的情况下也是有可能不会触发告警的。例如查询分析语句如下所示:

error | select count(*) as cnt这种情况下如果没有数据,那么这条语句执行的结果其实是不为空的,而是会有一条结果,如下所示:

[
    {
        "cnt": 0
    }
]

因此就不会去判断是否开启了无数据告警这个功能,也就不会触发无数据告警了。

参考文档

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
3月前
|
DataWorks 安全 关系型数据库
DataWorks产品使用合集之如何配置基线告警触发规则
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
Prometheus 监控 Cloud Native
6个步骤搞定云原生应用监控和告警(建议收藏)
本文主要以springboot应用为例,讲解云原生应用监控和告警的实操,对于理论知识讲解不多。等朋友们把实操都理顺之后,再补充理论知识,就更容易理解整个体系了。
6个步骤搞定云原生应用监控和告警(建议收藏)
|
JSON 运维 Prometheus
面向多告警源,如何构建统一告警管理体系?
面向多告警源,如何构建统一告警管理体系?
|
存储 数据采集 监控
无数据告警最佳实践
在对SLS的Logstore和Metricstore进行监控的过程中,有时候会出现一些无数据的情况,监控SLS的存储库中无数据的情况,是保证数据成功上传到SLS的一个重要手段,本文将介绍无数据告警的常见配置方法。
454 0
无数据告警最佳实践
|
存储 监控 索引
SLS告警最佳实践——自定义分析告警历史
在SLS告警评估、触发到通知的整个生命周期过程中,都会有一些日志记录,通过这些日志我们可以借助告警对系统的整体健康状况、稳定性等有一个相对全面的了解。
547 0
|
监控 Kubernetes 容器
云监控报警最佳实践之无数据策略
本文介绍了云监控报警中的无数据策略,通过该策略用户可以实现被监控对象无数据时的响应、处理。 ## 背景 云监控报警通常情况下是通过监控数据的阈值的判断来进行报警,比如cpu超过80%报警等。但有时候被监控对象的监控数据出现不连续或断掉的情况。如果要对这种情况进行报警,就需要配置无数据策略。 ## 配置无数据策略 首先进入[云监控控制台](https://cloudmonitor.console.
601 2
云监控报警最佳实践之无数据策略
|
存储 监控 Cloud Native
用户指南—监控与告警—配置告警
您可以在控制台上配置计算资源监控指标和存储资源监控指标的告警规则。本文将介绍如何配置实例的告警规则。
180 0
用户指南—监控与告警—配置告警
|
6月前
|
存储 运维 监控
基于业务的告警管理最佳实践
本文主要介绍了SLS告警管理中心的业务概念和功能。
262 0
基于业务的告警管理最佳实践
|
JSON 监控 应用服务中间件
SLS告警最佳实践——Webhook通知最佳实践
SLS告警通知对接了常用的各种 IM 系统,例如钉钉、企业微信、飞书、Slack。SLS对这些系统的 Webhook 进行了包装,用户无需关心各个通知渠道的具体消息格式,只需要配置希望通知的内容即可。 除此之外,还有其它的一些场景,需要使用通用Webhook(自定义 Webhook),本文主要介绍通用 Webhook 使用过程中常见的一些问题和最佳实践。
730 0
|
存储 运维 Kubernetes
SLS告警最佳实践—— K8s事件中心告警管理
K8S事件中心是SLS的日志应用之一,主要记录了集群的状态变更,包括创建Pod、运行Pod、删除Pod、组件异常等。K8S事件中心实时收集K8S中的所有事件并提供存储、查询、分析、可视化与告警能力。K8s事件中心默认也会提供仪表盘和告警,本文主要介绍下如何在ACK控制台和SLS控制台管理K8s事件中心的告警及其区别和使用场景。
1184 0
SLS告警最佳实践—— K8s事件中心告警管理