优维产品最佳实践第13期:如何避免拨测机自身网络问题?

2023-11-02 19:45

本文主要是介绍优维产品最佳实践第13期:如何避免拨测机自身网络问题?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

受限于拨测节点自身的环境,单一节点的拨测结果可能并不能反映出监控实例的真实运行状态

本期EasyOps产品使用最佳实践,我们将为您揭晓:

  • 如何基于多点决策配置拨测监控,以避免拨测机自身网络问题而误告警?

  • 如何对指标实现“降维”,从而汇聚指标?

「 背 景 」

拨测监控作为监控体系中重要的一环,为管理员提供最为直接的状态监控。然而,受限于拨测节点自身的环境和网络环境,可能单一拨测节点的结果并不能反映出监控实例的实际运行状态。比如,当拨测节点所在的网络发生故障时,或者和监控实例的网络中断时,此时会认为监控实例的服务不可用。

但是,这种判断可能是错误的。

因此,多点决策的需求就产生了。它基于这样一种监控逻辑:假设有两个拨测节点,分布于两个不同的环境或者网络,同时对目标实例拨测。仅当超过半数的拨测节点(也就是两台拨测机都发生告警时),才认为目标实例异常时,才发出拨测告警。

before:

after:

「 配 置 说 明 」

1.针对主机配置拨测采集策略,并且指定两台拨测机。

2.配置汇聚指标,这里作详细说明:

拨测的指标:detect_code包含着多个维度,而我们希望把detectAgentId和detectAgentName这两个维度降维了,让detect_code可通过jobId来汇聚成一个指标。

因此,需要作如下配置表达式:avg(detect_code ) by (stepName,jobId,customTag)

上述表达式,说明新指标的维度是stepName,jobId,customTag,把agent相关的维度聚合在一起了。

此时,两台拨测机的汇聚结果可参考如下表格:

可知,只有当两台拨测机都返回1的返回码时,也就是两台拨测机都认为实例故障时,多点决策返回码才大于0.5,因此0.5可以作为多点决策的判断阈值。

3.配置告警规则

此时,当两台拨测机都探测目标实例失败时,才会发出拨测失败的告警。如果只有一台拨测机认为拨测失败,并不会发出告警,以实现了半数以上判断为失败才失败的逻辑。

该实践提供了多点决策的能力,弥补了拨测节点的单点缺陷。

这篇关于优维产品最佳实践第13期:如何避免拨测机自身网络问题?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/332887

相关文章

Spring Boot统一异常拦截实践指南(最新推荐)

《SpringBoot统一异常拦截实践指南(最新推荐)》本文介绍了SpringBoot中统一异常处理的重要性及实现方案,包括使用`@ControllerAdvice`和`@ExceptionHand... 目录Spring Boot统一异常拦截实践指南一、为什么需要统一异常处理二、核心实现方案1. 基础组件

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时

大数据小内存排序问题如何巧妙解决

《大数据小内存排序问题如何巧妙解决》文章介绍了大数据小内存排序的三种方法:数据库排序、分治法和位图法,数据库排序简单但速度慢,对设备要求高;分治法高效但实现复杂;位图法可读性差,但存储空间受限... 目录三种方法:方法概要数据库排序(http://www.chinasem.cn对数据库设备要求较高)分治法(常

SpringBoot项目中Maven剔除无用Jar引用的最佳实践

《SpringBoot项目中Maven剔除无用Jar引用的最佳实践》在SpringBoot项目开发中,Maven是最常用的构建工具之一,通过Maven,我们可以轻松地管理项目所需的依赖,而,... 目录1、引言2、Maven 依赖管理的基础概念2.1 什么是 Maven 依赖2.2 Maven 的依赖传递机

Vue项目中Element UI组件未注册的问题原因及解决方法

《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

关于@MapperScan和@ComponentScan的使用问题

《关于@MapperScan和@ComponentScan的使用问题》文章介绍了在使用`@MapperScan`和`@ComponentScan`时可能会遇到的包扫描冲突问题,并提供了解决方法,同时,... 目录@MapperScan和@ComponentScan的使用问题报错如下原因解决办法课外拓展总结@

MybatisGenerator文件生成不出对应文件的问题

《MybatisGenerator文件生成不出对应文件的问题》本文介绍了使用MybatisGenerator生成文件时遇到的问题及解决方法,主要步骤包括检查目标表是否存在、是否能连接到数据库、配置生成... 目录MyBATisGenerator 文件生成不出对应文件先在项目结构里引入“targetProje

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,