苏州网站建设免费/app推广员好做吗
主机监控是保证系统稳定性和性能的重要环节之一,那应该如何实现对主机的立体监控?
本期EasyOps产品使用最佳实践,我们将为您揭晓:
-
主机应该如何分组和管理?
-
主机监控应该关注哪些关键性指标?
背 景
通过监控主机的各项指标,我们可以及时发现问题、诊断故障,并采取相应的措施来确保主机的正常运行。本文将结合之前的最佳实践,综合性介绍主机监控的目标和实现方式,以帮助您有效地监控主机的关键指标。
主 机 监 控 目 标
在进行主机监控时,我们通常关注以下几个重要指标:
在监控上述指标的实践中,我们不仅会进行指标的采集和监测,还会对异常情况进行告警处理。在进行告警时,我们注重提供丰富的信息和指标,以更加友好和直观的方式向用户发送告警通知,以协助用户进行告警分析和故障排查。
通过丰富的告警信息,我们可以提供更多的上下文和细节,帮助用户更好地理解告警的原因和影响。告警信息可能包括详细的指标数值、触发告警的条件、相关的主机或服务信息等,以帮助用户快速定位问题所在。
下面,我将基于EasyOps平台的优维的EasyOps监控系统,一步一步从0开始实践如何对主机实现立体监控。
实 践
1.主机分类
首先,为了更好地进行主机监控,我们需要对主机进行分类。通常情况下,我们会关注生产环境中的主机,或者具备一些特定特征的主机。通过对主机进行分类,我们可以更有针对性地进行监控和管理。而借助 CMDB 平台的查询策略,我们可以方便地对主机进行分类和查看。
主机分类的方式可以根据不同的需求和业务场景来确定。以下是一些常见的主机分类方式:
-
按照环境分类:将主机划分为生产环境、开发环境、测试环境等,以便针对不同环境进行监控和管理。
-
按照业务应用分类:将主机按照所承载的业务应用进行分类,例如 Web 服务器、数据库服务器、应用服务器等,以便更好地追踪和管理各个业务应用的性能和可用性。
-
按照地理位置分类:将主机按照地理位置进行分类,例如不同地区、不同数据中心或机房的主机,以便进行地域性的监控和管理。
-
按照硬件配置分类:将主机按照硬件配置进行分类,例如不同型号、不同规格的主机,以便更好地了解不同硬件配置对性能的影响。
在本次实践中,我的监控对象分为两种类型:
-
按环境和用途区分,以归类于“生产环境主机”
-
按虚拟化类型区分,已归类于“宿主机“
如下图所示:
上面可以看到有两条查询策略,仅需点击查询策略后即可过滤出主机组。
2.采集策略
在优维的EasyOps监控系统中,主机作为最基本和基础的监控资源对象,已经内置好主机采集策略。我们可能需要稍微对采集范围做一些调整,以符合我们的监控目标需求。此处我将重新建立一条监控采集策略,以帮助您了解一条采集策略需要包含哪些基本内容:
新建采集策略
点击右上角的新建,选择system套件,填入所需的任务名,指标集等信息。
特别说明:system套件是主机采集套件,将对主机的cpu、内存、网络、磁盘、文件系统和进程等信息进行采集。
选择采集实例范围
此处基于CMDB的查询策略,可快速过滤出目标主机组。此处,我们过滤出生产环境的宿主机作为监控对象。如下所示:
点击下一步保存即可。
稍等片刻,即可看到所有的实例对象的采集状态都是正常,说明指标采集成功。
针对于宿主机这个主机组,已经配置完成。
而针对于生产环境主机这个主机组,步骤也一样,此处不赘述。
3.告警规则
接下来针对监控目标的表格,设定告警规则。我们的告警规则设定如下,仅供参考:
新建规则
右上角点击新建规则
注意,选择的类型为:主机。
而后添加监控目标,此处的监控目标就是CMDB查询策略中定义好的规则。此处我们已经把规则建立好,因此可以直接绑定已有查询策略:
建立告警套件策略
我们的阈值条件判断是:主机5分钟单核平均负载大于5「或」cpu使用率大于85%,因此这是一个或条件。此时在告警来源中,我们选择「从【阈值条件.任意条件】产生」;如果是与条件,则选择「从所有条件产生」。
为了准确触发告警,系统使用连续的3个数据点来判断是否达到告警条件。每分钟采集一次数据,如果在连续的3分钟内命中告警条件,系统将触发相应的告警通知。
在设计告警策略时,系统考虑了告警的延迟,以适应可能的瞬时异常情况,从而提高告警的准确性。因此,即使出现短暂的异常情况,系统会等待一段时间确认后再触发告警,以减少误报的可能性。
告警分析
当主机发出告警后,了解关于该主机的上下文信息对于告警分析和问题解决非常重要。监控平台支持联动CMDB模型中的属性信息,可以非常灵活地在告警信息中包含来源于CMDB的实例属性,并且还能关联目标指标的关联指标信息,以提供更丰富的信息支持。比如:
-
主机负责人:在告警通知中包含主机的负责人联系信息,以便管理员可以直接与负责人进行沟通和协调。
-
关联指标:对于本例中的CPU负载告警,我们可以在告警通知中包含当前的CPU使用率
因此,我们可以基于告警分析中的告警丰富和信息丰富去完成。
信息丰富:添加负责人
通过选择CMDB的主机模型中的属性信息,添加到告警通知中,让我们可以得知该主机的负责人,以便当主机告警时可以得知应该谁去处理该告警。
指标丰富:丰富CPU信息
此时告警模板中就可以添加丰富的信息。
更多地,根据实际情况添加即可。如下告警分析供参考:
告警通知
最后,添加告警通知。告警通知支持多种通知媒介,此处以钉钉机器人为例子说明。
简单地填写好配置信息后,我们重点添加告警内容的模板,结合我们上一篇的最佳实践《一个“好”的告警通知是怎样的?》,我们可以得出以下的模板
这里给出一个示例,如下:
●告警模板:
{{time|ts2str:'%Y-%m-%d %H:%M'}} 产生告警事件</font></h2>
| 事件类型 | SLO事件 |
| --- | --- |
| 告警等级 | {{levelName}} |
| 告警资源 | {{******}} |
| 告警信息 | {{originContent}} |
| 运营负责人 |{{instance|jsonpath:'$.owner[*].name'|unique|join:','}} |
| 持续时长 | {{duration|duration_format:'zh'}} |
| 首次发生时间 | {{startTime|ts2str:'%Y-%m-%d %H:%M'}} |
| 事件详情 | [请点击](http://*****.******.*****/next/events/{{eventId}}/detail) |
| 策略详情 | [请点击](http://*****.******.*****/next/events/alert-rule/alert-rule/{{ruleId}}/edit) |{% if metricName != "主机agent状态" && metricName != "detect_code" && metricName != "detect_time_cost" %}| 采集任务 | [{{collectorJob|showname|default:"请点击"}}](http://*****.******.*****/next/infra-monitor/setting/collection-strategy/{{collectorJob|mvalue:"instanceId"}}/detail) |{% elif metricName == "detect_code" || metricName == "detect_time_cost" %}| 采集任务 | [{{collectorJob|showname|default:"请点击"}}](http://*****.******.*****next/infra-monitor/setting/collection/detect/{{collectorJob|mvalue:"instanceId"}}/detail) |{% endif %}
●告警解除模板:
{{time|ts2str:'%Y-%m-%d %H:%M'}} 告警事件解除</font></h2>
| 事件类型 | SLO事件 |
| --- | --- |
| 告警等级 | {{levelName}} |
| 告警资源 | {{******}} |
| 告警信息 | {{originContent}} |
| 运营负责人 |{{instance|jsonpath:'$.owner[*].name'|unique|join:','}} |
| 持续时长 | {{duration|duration_format:'zh'}} |
| 首次发生时间 | {{startTime|ts2str:'%Y-%m-%d %H:%M'}} |
| 事件详情 | [请点击](http://*****.******.*****/next/events/{{eventId}}/detail) |
| 策略详情 | [请点击](http://*****.******.*****/next/events/alert-rule/alert-rule/{{ruleId}}/edit) |{% if metricName != "主机agent状态" && metricName != "detect_code" && metricName != "detect_time_cost" %}| 采集任务 | [{{collectorJob|showname|default:"请点击"}}](http://*****.******.*****/next/infra-monitor/setting/collection-strategy/{{collectorJob|mvalue:"instanceId"}}/detail) |{% elif metricName == "detect_code" || metricName == "detect_time_cost" %}| 采集任务 | [{{collectorJob|showname|default:"请点击"}}](http://*****.******.*****/next/infra-monitor/setting/collection/detect/{{collectorJob|mvalue:"instanceId"}}/detail) |{% endif %}
保存后即完成了告警规则。
当告警发生时,会发出如下通知:
告警解除后,发出以下通知:
到此为止,主机监控的配置已经完成,此时您的主机已经纳入到监控系统中,通过主机监控,您可以及时掌握主机的状态和性能情况。
并且通过告警和监控dashboard,及早发现并分析潜在问题,提高系统的稳定性和可靠性。
相关文章:

如何实现对主机的立体监控?
主机监控是保证系统稳定性和性能的重要环节之一,那应该如何实现对主机的立体监控? 本期EasyOps产品使用最佳实践,我们将为您揭晓: 主机应该如何分组和管理? 主机监控应该关注哪些关键性指标? 背 景 通…...

机器学习笔记:李宏毅ChatGPT Finetune VS Prompt
1 两种大语言模型:GPT VS BERT 2 对于大语言模型的两种不同期待 2.1 “专才” 2.1.1 成为专才的好处 Is ChatGPT A Good Translator? A Preliminary Study 2023 Arxiv 箭头方向指的是从哪个方向往哪个方向翻译 表格里面的数值越大表示翻译的越好 可以发现专门做翻…...

中电金信:逐数兴业 智启未来——“数据二十条”影响之解读 (下)
在逐数兴业 智启未来——“数据二十条”影响之解读(上)篇内容中,主要解读了有关于“数据二十条”发布的背景与意义、建立数据要素市场面临的挑战与应对。在今天的文章里,将继续解读“数据二十条”的主要内容以及对金融行业和金融科…...

54款宝藏级AIGC工具分享(claude,Midjourney,Stable Diffusion等)
随着ChatGPT的一波又一波高潮,生成式AI逐渐进入人们视野,并开始大行其道,正如人们所说:AI用的好,天天下班早! 当然,有效的利用AI不但能下班早,还能在上班时间摸鱼,就如潘…...

bigemap如何添加在线地图源?
第一步 打开浏览器,找到你要访问的地图的URL地址,并且确认可以正常在浏览器中访问;浏览器中不能访问,同样也不能在软件中访问。 以下为常用地图源地址: 天地图: http://map.tianditu.gov.cn 包含&a…...

84. 柱状图中最大的矩形
题目描述 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例 1: 输入:heights [2,1,5,6,2,3] 输出:10 解释:最…...

嘉楠勘智k230开发板上手记录(二)--hello world
上次成功在k230上烧录sdk,这次准备实现hello world和ssh scp远程k230 主要是按照K230 SDK 基础教程的K230_实战基础篇_hello_world.md 一、PC连接k230 1. 初步准备 首先下载串口工具PuTTY,这个我个人感觉比较方便。 准备两根USB type-C数据线&#…...

ArcGIS Pro实践技术应用——暨基础入门、制图、空间分析、影像分析、三维建模、空间统计分析与建模、python融合、案例应用全流程科研能力提升
查看原文>>>ArcGIS Pro实践技术应用——暨基础入门、制图、空间分析、影像分析、三维建模、空间统计分析与建模、python融合能力 本文将利用ArcGIS Pro 将您的 GIS 工作组织到工程中,您可以使用 ArcGIS Pro 映射 2D 和 3D 数据。借助 ArcGIS Proÿ…...

学习pytorch
学习pytorch 1. 环境安装配置镜像源conda命令记录图像相关代码遇到的问题1. torch.cuda.is_available() False 1. 环境安装 B站小土堆视频 配置镜像源 conda config --show channels conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main…...

动态SQL实现原理一-动态SQL的使用
在介绍MyBatis动态SQL实现原理之前,我们先来了解一下MyBatis动态SQL的使用。顾名思义,动态SQL指的是事先无法预知具体的条件,需要在运行时根据具体的情况动态地生成SQL语句。 假设我们有一个获取用户信息查询操作,具体的查询条件…...
MyBatis动态sql标签帮你轻松搞定sql拼接
动态sql介绍 由于在开发过程不同的业务中会用到不同的操作条件,如果每个业务都拼接不同sql语句的话会是一个庞大的工作量;此时动态sql就能解决这个问题,可以针对不确定的操作条件动态拼接sql语句,根据提交的条件来完成业务sql的执…...

Java课题笔记~ 使用 Spring 的事务注解管理事务(掌握)
通过Transactional 注解方式,可将事务织入到相应 public 方法中,实现事务管理。 Transactional 的所有可选属性如下所示: propagation:用于设置事务传播属性。该属性类型为 Propagation 枚举, 默认值为 Propagation.R…...

UML—浅谈常用九种图
目录 概述: 1.用例图 2.静态图 3.行为图: 4.交互图: 5.实现图: 概述: UML的视图是由九种视图组成的,分别是用例图、类图、对象图、状态图、活动图、序列图、协作图、构件图、实施图。我们可以根据这9种图的功能和实现的目的…...

算法与数据结构-跳表
文章目录 什么是跳表跳表的时间复杂度跳表的空间复杂度如何高效的插入和删除跳表索引动态更新代码示例 什么是跳表 对于一个单链表来讲,即便链表中存储的数据是有序的,如果我们要想在其中查找某个数据,也只能从头到尾遍历链表。这样查找效率…...

微信小程序nodejs+vue+uniapp校运会高校运动会报名管理系统
3.1小程序端 小程序登录页面,用户也可以在此页面进行注册并且登录等。 登录成功后可以在我的个人中心查看自己的个人信息或者修改信息等 在广播信息中我们可以查看校运会发布的一些信息情况。 在首页我们可以看到校运会具体有什么项目运动。 在查看具体有什么活动我…...

varint原理 - 负数的编码和解码
前一篇博客 varint原理 - 正数的编码和解码_YZF_Kevin的博客-CSDN博客我们讲了varint的实现原理,举例也分析对于正数的编码,解码过程 本篇博客,我们开始举例分析负数的编码和解码,因为负数有原码,反码,补码…...

大学生口才培训需求分析
标题:大学生口才培训需求分析 摘要: 本论文旨在分析大学生口才培训的需求,通过对大学生口才培训的重要性、现状和挑战进行研究,并结合相关理论和实践经验,提出相应的培训需求和解决方案。通过本论文的研究,…...

C++:合并集合(并查集)
合并集合 一共有n个数,编号是1~n,最开始每个数各自在一个集合中。 现在要进行m个操作,操作共有2种: 1.“M a b”,将编号为a和b的两个数的所在的集合合并,如果两个数已经在同一个集合中则忽略这个操作 2.“…...

【LeetCode】数据结构题解(10)[有效的括号]
有效的括号 😉 1.题目来源👀2.题目描述🤔3.解题思路🥳4.代码展示 😘😘😘😘😘😘😘😘😘😘😘…...

5G用户逼近7亿,5G发展迈入下半场!
尽管普遍认为5G投资高峰期正在过去,但是从2023年上半年的情况来看,我国5G建设仍在衔枚疾走。 近日举行2023年上半年工业和信息化发展情况新闻发布会上,工信部人士透露,截至今年6月底,我国5G基站累计达到293.7万个&…...

分布式问题
1. 分布式系统CAP原理 CAP原理:指在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partitontolerance(分区容忍性),三者不可得兼。 一致性(C…...

教雅川学缠论06-中枢
本系列文章之前讲的内容都只有上升和下降两类趋势,并没有提及盘整,在缠论中,中枢这个新词汇用来定义盘整,中枢: 1.至少由5条线段(或笔)组成 2.中枢是有方向的,中枢左右两侧外面的线&…...

如何调教让chatgpt读取自己的数据文件(保姆级图文教程)
提示:如何调教让chatgpt读取自己的数据文件(保姆级图文教程) 文章目录 前言一、如何投喂自己的数据?二、调教步骤总结 前言 chatgpt提示不能读取我们提供的数据文件,我们应该对它进行调教。 一、如何投喂自己的数据? 让chatgpt读…...

React Native Camera的使用
介绍 React Native Camera是一个用于在React Native应用中实现相机功能的库。它允许你访问设备的摄像头,并捕获照片和视频。 使用 安装 npm install react-native-camera --save 安装完成后,你需要链接React Native Camera库到你的项目中。可以使用以…...

【Matlab】Elman神经网络遗传算法(Elman-GA)函数极值寻优——非线性函数求极值
往期博客👉 【Matlab】BP神经网络遗传算法(BP-GA)函数极值寻优——非线性函数求极值 【Matlab】GRNN神经网络遗传算法(GRNN-GA)函数极值寻优——非线性函数求极值 【Matlab】RBF神经网络遗传算法(RBF-GA)函数极值寻优——非线性函数求极值 本篇博客将主要介绍Elman神…...

@ControllerAdvice注解使用及原理探究 | 京东物流技术团队
最近在新项目的开发过程中,遇到了个问题,需要将一些异常的业务流程返回给前端,需要提供给前端不同的响应码,前端再在次基础上做提示语言的国际化适配。这些异常流程涉及业务层和控制层的各个地方,如果每个地方都写一些…...

Error: Design has unresolved cell reference
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 所有的unresolved cell reference问题都是cell信息没读到引起的,在dc/pt里就是db没读到,在ICC2里就是ndm没读。 ICC2中午饭这个问题可以report_design_…...

uni-app 封装api请求
前端封装api请求 前端封装 API 请求可以提高代码的可维护性和重用性,同时使得 API 调用更加简洁和易用。 下面是一种常见的前端封装 API 请求的方式: 创建一个 API 封装模块或类:可以使用 JavaScript 或 TypeScript 创建一个独立的模块或类来…...

SpringCloud实用篇1——eureka注册中心 Ribbon负载均衡原理 nacos注册中心
目录 1 微服务1.1 微服务的演变1.2 微服务1.3 SpringCloud1.4 小结 2 服务拆分及远程调用2.1 服务拆分2.2 服务拆分案例2.3 实现远程调用2.4 提供者与消费者 3 Eureka注册中心3.1 Eureka的结构和作用3.2 搭建eureka-server3.3 服务注册3.4 服务发现 4 Ribbon负载均衡4.1 负载均…...

【MySQL】sql字段约束
在MySQL中,我们需要存储的数据在特定的场景中需要不同的约束。当新插入的数据违背了该字段的约束字段,MySQL会直接禁止插入。 数据类型也是一种约束,但数据类型这个约束太过单一;比如我需要存储的是一个序号,那就不可…...