自从用了这些监控工具,我连续几天没睡好觉!

news2024/9/24 11:28:43

大家好,我是程序员鱼皮,今天分享一些很实用的系统监控告警工具。

为什么要用监控告警?

说到监控告警,没有企业开发经验的同学非常容易忽视它,甚至会有同学觉得没有必要,大不了出了 Bug 再修就是了。

这种想法大错特错!

我们把系统想象成人的身体。有的时候,一个人表面看起来可能很健康,但可能只是没有机会发现自己体内的异常,结果等到真的出事了,往往要承担的后果更严重。所以才需要定期体检,及时发现和处理问题。系统监控告警的作用也是类似的,能够及时发现系统中潜在的异常和问题、线上出了问题也能第一时间发现,尽早处理,从而预防或减轻故障。

此外,监控系统还有一些其他的好处,我们接着往下看。

怎么实现监控告警呢?

最直接能想到的办法就是自己写代码实现,比如给要重点关注的功能加点儿逻辑,出现某个异常的时候发送一条短信 / 邮件 / 企微消息即可。我们最开始就是这么做的:

但其实业务告警只是监控告警的其中一个层面,就像是人体的表面皮肤检查。如果我们想更全面地、更准确地监控系统的健康,还要里里外外做个全方位的体检,包括服务器监控、网络监控、应用监控、数据库监控、API 接口监控等等。

是的,听上去就很复杂,所以监控在现代运维中有了一个更专业的别名,叫 “可观测性”。可观测性是指系统能够通过监控和分析其内部状态来了解和诊断其健康状况和性能的能力。这个概念不仅包含了传统的监控,还扩展到了数据的收集、分析和响应。举个例子,我们通过监控发现系统的内存利用率不高,就可以适当降配节约成本;发现系统的内存利用率过高,就可以考虑是否要升配扩容。

想要自己优化系统的可观测性还是很复杂的,数据收集、数据存储、数据分析、告警机制、可用性保障、性能等等都要考虑,大厂都是有规模的基础设施团队来做。

对于我们个人开发者或者小公司来说,既然是全方位的 “体检”,我们一般不会自己来做,而是会选择更专业的工具或服务,直接使用和接入就好。下面就推荐几个我们团队在用的。

监控工具推荐

1、服务器监控

1)服务器自带的监控能力

只要你使用的是大厂的云服务器,基本都自带了服务器监控,还可以设置告警。比如下图腾讯云轻量应用服务器的监控,能看到 CPU、内存、网络带宽、硬盘等资源的使用情况:

2)容器平台的监控能力

如果你使用的是容器的方式来部署项目,基本上容器平台也自带了监控告警能力。比如微信云托管的服务监控,除了看到系统资源的占用情况外,还能看到接口调用量、请求错误量、接口 QPS 和响应时间,相当于自带了一部分 API 接口监控能力。

而且云托管平台支持在微信群内接收告警信息,非常方便。一旦节点被攻击了,立刻就能通知到你。

2、数据库监控

以前,没有数据库监控,我们很难关注到数据库的运行状态,不知道它工作辛不辛苦、有没有摸鱼或者超负荷加班。但现在,如果你使用的是第三方云服务商的云数据库,可以直接在平台上查看数据库的资源利用情况。比如我们用的腾讯云数据库自带的监控:

以前只能通过用户反馈或者服务器的故障来发现危害系统的慢 SQL,现在使用云数据库自带的智能管家,就能第一时间帮你发现慢 SQL,防患于未然。

还能一键帮你的数据库做个体检,不是 100 分的话都要及时修改:

3、应用监控

应用监控的范围比较广,我们使用的是阿里云的应用实时监控服务 ARMS,主要的原因是对比下来阿里在 Java 应用服务这一块的专业性确实更高。

包括应用服务器(比如 Java 的 Tomcat)的状态、API 接口调用情况、系统内部依赖服务的调用情况、定时任务的调用情况、线程池的状态、虚拟机的内存、GC 的情况等等。

还能查看应用拓扑结构、分析调用链路等等:

除了监控能力外,它的告警能力是真的强!我们把服务接入到了企微,只要有个环节出了问题,立刻就会给我们发送告警。还可以快速查看告警详情、认领告警、屏蔽告警等等。

实不相瞒,我们刚接入这玩意的那几天,还是挺痛苦的,因为暴露了很多之前没发现的系统问题,大半夜的企微也一直滴滴滴滴滴滴搁那响!我们团队的开发同学苦不堪言。

不过现在已经习惯了。。。额,准确地说是系统经过优化后,已经变得更健康了~

不管怎么样,接入监控告警还是很有必要的,感觉像是开了通透世界,对系统的状态了若指掌了!

但是监控服务的使用超过一定次数,是需要费用的,大概每月几十 G 的免费额度吧,企业项目的话其实很快就用完了。用于学习或者个人网站可以试试。

4、前端监控

除了上面的监控外,有时我们还想了解用户的行为、用户属性和业务指标,比如每天有多少用户访问网站、是用的 PC 还是手机、手机是什么牌子的、有多少新用户注册等等。那么可能还需要前端监控(当然也可以后端埋点统计),之前分享过的,用百度统计,一行代码就能接入到前端网站中,很方便~


OK,以上就是本期分享,恰饭去了~

更多

💻 编程学习交流:编程导航
📃 简历快速制作:老鱼简历
✏️ 面试刷题神器:面试鸭

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1966331.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL:初识数据库初识SQL创建数据库

目录 1、初识数据库 1.1 什么是数据库 1.2 什么是MySQL 2、数据库 2.1 数据库服务&数据库 2.2 C/S架构 3、 初识SQL 3.1 什么是SQL 3.2 SQL分类 4、使用SQL 4.1 查看所有数据库 4.1.2 语句解析 4.2 创建数据库 4.2.1 if not exists校验 4.2.2 手动明确字符集…

第33篇 计算数据中最长的连续1的个数<三>

Q:如何将计算出的结果(最长的连续1的个数)显示在DE2-115开发板的HEX上? A:基本原理:DE2-115_Computer_System中的HEX并行端口作为内存映射设备连接到DE2-115开发板的七段数码管,每个端口都对应…

uniapp微信小程序按钮分享定制动态传参

打印 onShareAppMessage 中的传参&#xff08;注意&#xff1a;上方我定义了一个open-type为share的按钮&#xff09; 打印之后如下&#xff1a; 给按钮绑定 data-id 可以在这里的 dataset 中取到 然后根据 from 的值来动态返回分享的参数 示例代码&#xff1a; <…

通过材质节点Panner实现球体自转

纹理坐标的移动&#xff0c;可以达到球体自转的功能&#xff0c;从而减少代码的复杂度。由于是绕着一个轴转动&#xff0c;所以在u方向移动即可。 材质&#xff1a; 材质实例 运行如下&#xff1a;

怎么把视频转换成mp4格式?分享几款视频转换软件

在数字化时代&#xff0c;视频已经成为我们日常生活和工作中的重要组成部分。然而&#xff0c;不同的设备和软件可能支持不同的视频格式&#xff0c;这常常导致兼容性问题。MP4作为一种广泛支持且高质量的视频格式&#xff0c;经常被用作解决这类问题的首选方案。那么&#xff…

医疗器械维修培训哪里好

医疗器械维修培训哪里好 医学技术的应用离不开医疗设备的支持,近几年医疗行业发展迅速&#xff0c;城镇、县级、市级医院设备也都越来越多&#xff0c;医疗机构拥有大量的医疗设备&#xff0c;需要专业的维修团队来保障设备的正常运行。医疗设备的论证、验收、使用、维护、维修…

多语言海外AEON抢单可连单加额外单源码,java版多语言抢单系统

多语言海外AEON抢单可连单加额外单源码&#xff0c;java版多语言抢单系统。此套是全新开发的java版多语言抢单系统。 后端java&#xff0c;用的若依框架&#xff0c;这套代码前后端是编译后的&#xff0c;测试可以正常使用&#xff0c;语言繁体&#xff0c;英文&#xff0c;日…

WebSocket 协议与 HTTP 协议、定时轮询技术、长轮询技术

目录 1 为什么需要 WebSocket&#xff1f;2 WebSocket2.1 采用 TCP 全双工2.2 建立 WebSocket 连接2.3 WebSocket 帧 3 WebSocket 解决的问题3.1 HTTP 存在的问题3.2 Ajax 轮询存在的问题3.3 长轮询存在的问题3.4 WebSocket 的改进 参考资料&#xff1a; 为什么有 h…

leetcode提示LeetCode extension needs Node.js installed in environment path

背景 系统&#xff1a;mac node版本 已通过nvm安装了多个版本node&#xff0c;并通过nvm alias default XX指定了node默认版本 描述&#xff1a;vscode安装了leetcode后&#xff0c;提示&#xff1a;LeetCode extension needs Node.js installed in environment path 问题…

leetcode958. 二叉树的完全性检验,层序遍历的巧用

leetcode958. 二叉树的完全性检验 给你一棵二叉树的根节点 root &#xff0c;请你判断这棵树是否是一棵 完全二叉树 。 在一棵 完全二叉树 中&#xff0c;除了最后一层外&#xff0c;所有层都被完全填满&#xff0c;并且最后一层中的所有节点都尽可能靠左。最后一层&#xff0…

Web安全学习顺序:从零到精通的指南

随着互联网的迅猛发展&#xff0c;Web安全已成为一个日益重要的领域。无论是企业还是个人&#xff0c;都需要关注并提升自身的Web安全防护能力。对于初学者而言&#xff0c;如何系统地学习Web安全知识&#xff0c;掌握相关技能&#xff0c;成为了一个亟待解决的问题。本文将为你…

C# 串口通信(通过serialPort控件发送及接收数据)

连接串口 界面设计打开串口发送数据通过文件发送发送数据 接收数据 首先可以在 工具箱中搜索serialport&#xff0c;将控件拖到你的Winfrom窗口。 界面设计 打开串口 private void Connect_Click(object sender, EventArgs e){serialPort1.PortName comboBox2.Text;//端口名s…

颜色传感器 - 从零开始认识各种传感器【二十三期】

颜色传感器|从零开始认识各种传感器 1、什么是颜色传感器 颜色传感器&#xff08;Color Sensor&#xff09;是一种能够检测和识别颜色的传感器&#xff0c;它广泛应用于工业自动化、机器人技术、智能家居、消费电子等领域。颜色传感器通过测量物体表面反射的光来确定其颜色&a…

类和对象(上) - c++

1.类的定义 1.1 类定义格式 class 是定义类的关键字 ,后跟类的名字,{}部分为类的主体,(注意:最后类定义结束时不要忘了 ; )。 类体中内容称为类的成员&#xff1a;类中的变量称为成员变量; 类中的函数称为成员函数。在c中,struct也可以定义类(c兼容c语言),同时struct升级成类…

武汉流星汇聚:跨境电商桥梁连接中国与世界,中国产品畅销全球

在全球经济一体化的大背景下&#xff0c;零售电商行业以其独特的魅力和无限潜力&#xff0c;正引领着全球商业模式的深刻变革。特别是中国卖家&#xff0c;通过跨境电商平台这一桥梁&#xff0c;轻松触达全球消费者&#xff0c;实现了商品的快速流通和市场的广泛覆盖&#xff0…

Spark 基础 与 安装

Spark 基础 一、MapReduce编程模型的局限性 1、繁杂&#xff1a;只有Map和Reduce两个操作&#xff0c;复杂的逻辑需要大量的样板代码 2、处理效率低&#xff1a; Map中间结果写磁盘&#xff0c;Reduce写HDFS&#xff0c;多个Map通过HDFS交换数据 任务调度与启动开销大 3、…

十城联动共建生态登陆山东 纷享销客从原厂型向生态型CRM进化

7月30日&#xff0c;纷享销客渠道生态伙伴发展共建会之山东专场盛大举行&#xff0c;百余家优秀伙伴到场共享CRM领域高质量增长新机遇。2024年&#xff0c;纷享销客将坚定不移地从原厂型向生态型CRM厂商进化&#xff0c;把伙伴们扶上马&#xff0c;送一程&#xff0c;共发展&am…

Java--异常

目录 异常的概念异常的体系结构异常抛出异常处理异常throws声明try-catch捕获 异常处理流程自定义异常类 异常的概念 Java中&#xff0c;程序执行过程中发生的不正常的行为称为异常。 我们之前学数组的时候可能会遇到的数组越界异常&#xff1a;ArrayIndexOutOfBoundsException…

Reeder + RSS+ - 订阅RSS信息

文章目录 引言ReederRSS 源微博Bilibilirsshub自己发现 feed RSS 使用 引言 信息越来越多&#xff0c;也层次不齐&#xff0c;难以花时间筛选&#xff0c;但也不能闭目塞听。 使用爬虫 每日定时 去爬取不同网站需要的信息&#xff0c;还是有些繁琐&#xff0c;又让人想到 RSS …

odoo 去掉新手简介

很多模块有这样的提示&#xff0c;这种是可以动态关闭的 菜单 设置-技术-入职 可以动态切换&#xff0c;是否再次展示