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

news/2024/11/14 13:16:39/文章来源:https://www.cnblogs.com/yupi/p/18336341

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

 

为什么要用监控告警?

说到监控告警,没有企业开发经验的同学非常容易忽视它,甚至会有同学觉得没有必要,大不了出了 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.hqwc.cn/news/776066.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JDK的安装与配置

JDK的安装与配置 目录JDK的安装与配置1.下载JDK:2.安装JDK:3.配置环境变量:4.验证安装和配置:5.注意事项: 1.下载JDK:你可以从Oracle官网下载所需的JDK版本。例如,JDK 8可以从以下链接下载:Java Archive | Oracle。确保选择适合你操作系统的版本 2。 我们可以选择Java …

zabbix“专家坐诊”第249期问答

问题一 Q:zabbix server服务每次重启监控主机就会触发大量的“10分钟未获取到数据”的告警,同时还会触发zabbix的history进程繁忙的告警。(后面检查实际上监控主机在告警时间段内是有数据的)感觉是server一重启,数据库就重新写入数据,需要花超过10分钟的时间,告警时间段…

Java初识

JDK、JRE和JVM ​ 1.JDK指的是Java Development Kit,它是一个开发Java应用程序所需的软件开发工具包。JDK包括Java编译器、Java虚拟机、Java类库等必要组件,以及用于开发、调试和运行Java应用程序的其他工具。 使用JDK可以帮助开发人员编写、测试和部署Java应用程序,以及运…

telegraf 常用命令总结

本文为博主原创,转载请注明出处:Telegraf 是一个灵活的服务器代理,用于收集和报告指标。它支持插件驱动,这意味着你可以根据需要添加或修改功能。 1.使用telegraf --help 查看telegraf提供的相关命令和参数使用telegraf --help 可以查看telegraf提供的相关命令和参数,具体…

vue若依集成C#的singalR接收实时数据

要写一个实时监控页面,监控堆垛机实时状态以及线体上是否有载具、是否有任务、是否有告警。项目是若依前端,后端是Java接口。要跳过Java接口,直接对接C#的signalR推送数据。需要配置两个总接口地址,原先的Java总接口地址不能删。这里的signalR是Microsoft的sigalR,开始还搞…

Zotero如何引用参考文献(尤其是如何能够自动识别中文文献)

一、软件及插件安装 首先进入zotero官网 Zotero | Your personal research assistant 点击下载下载安装zotero 6 for windows(我用的是windows)和zotero connector(我用的Edge浏览器,安装这个插件可以自动识别读取网页上的文献信息) 安装zotero后显示如下:安装好后在off…

P5017 [NOIP2018 普及组] 摆渡车

讲解 P5017 [NOIP2018 普及组] 摆渡车。考虑动态规划算法,使用前缀和,缩小转移范围来进行优化。思路: 考虑动态规划。 定义 \(dp_i\) 表示若有一班车在第 \(i\) 个时间出发所有人等待的时间,则状态转移方程为: \[dp_i = dp_j + \operatorname{get}(j+1,i)(j \le i - m) \]…

.NET 结果与错误处理利器 FluentResults

前言 在项目开发中,方法返回的结果(成功或失败)对我们开发来说很重要。传统方法,如通过异常来指示错误或使用特定的返回类型(如布尔值加输出参数),虽然有效,但可能缺乏直观性和灵活性。 FluentResults库应运而生,它以一种既流畅又富有表达力的方式,极大地优化了这一过…

c# chart缩放,局部放大问题

左键划选放大区域,右键恢复/// <summary>/// 初始化,传入要进行初始化的chart/// </summary>/// <param name="chart1"></param>public static void InitChart (System.Windows.Forms.DataVisualization.Charting.Chart chart1){//开启缩放…

Charles证书一年过去后怎么处理?

1、删除证书 windows--》设置--》搜索(管理证书)--》右键删除2、重置证书3、重新安装证书 安装完后重启charles

阿里云CentOS7.x ECS云盘在线扩容操作

说明这里只介绍如何在线扩容 操作系统:CentOS 7.x 以下操作实现给200G云盘扩容至300G;操作步骤 创建快照 找到需要扩容的云盘,创建快照,避免扩容出问题数据丢失,阿里云快照是收付费的,快照时长设置1天即可;操作比较简。磁盘创建快照创建快照配置截图(保留时间设置1天)…

【BUUCTF】AreUSerialz

【BUUCTF】AreUSerialz (反序列化) 题目来源 收录于:BUUCTF  网鼎杯 2020 青龙组 题目描述 根据PHP代码进行反序列化 <?phpinclude("flag.php");highlight_file(__FILE__);class FileHandler {protected $op;protected $filename;protected $content;fu…