您当前的位置:首页 > 电脑百科 > 网络技术 > 网络知识

大概是全网介绍监控最全面的文章了

时间:2020-08-10 10:14:42  来源:  作者:

在亿万服务、海量数据的今天,对于互联网服务的要求就是三高,高并发、高性能、高可用。为了实现“三高”,程序员们可真是使尽浑身解数,在技术架构上使用微服务架构,在部署方式上使用Docker、Kubernetes,在弹性扩容方面使用云计算等等。而今天要给大家介绍的便是应用监控体系。监控就像应用的跟屁虫一样,走到哪跟到哪,做了什么全知道并记录下来,通过监控体系的搭建,当应用有问题时可以快速“回放”应用轨迹,找到原因,长远来说,还可以预测故障的发生,提前避免。

那么一个应用体系是怎么样的呢?用户通过在PC或智能终端(手机)通过浏览器或App对应用发起请求,请求通过网络传输到业务系统,业务系统的函数通过应用框架、中间件运行起来,运行系统又依托于操作系统,操作系统需要网络设备如网卡等与外界建立通讯,而这全套软件都是安装在硬件之上,如服务器、网卡等硬件设备都是安装在机房中。因此对一个应用体系的全栈监控就包含APP监控、浏览器监控、服务器监控、网络监控、日志监控、基础设施监控、物理环境监控。

 

APP监控

目前APP的主流操作系统有AndroidIOS,因此每个APP开发时都会有两个版本,APP的开发流程是研发根据产品需求进行功能的开发,开发完成后打对应的Android包、IOS包在安卓应用商店、苹果应用商品进行上线。因此对于APP的监控是通过打包时将探针安装在对应的应用包里,形成正式包对外发布。

当用户手机下载了APP后,在使用APP的各个功能时,整个的行为轨迹也被探针记录下来了。探针会采集两类数据,用户数据和APP运行数据,用户数据包括设备所在的地域、城市、设备的操作系统、使用时长、使用次数,运行数据包括APP运行网络情况、卡顿情况、缓慢情况。获取到用户数据和运行数据后就可以运营分析和运维监控了,了解开发的APP用户日活、访问区域、访问版本等,帮助产品运营同学进行产品的优化迭代提供意见;通过运维数据可以知道用户打开APP是否白屏、是否卡顿、是否缓慢、是否网络被运营商劫持,从而帮助研发人员快速解决问题,提高用户留存率。

 

浏览器监控

对于浏览器的监控,起源于早期互联网时代,购物、购票、办公等都是在PC端进行,随着移动互联网的兴起,逐步的被弱化,但是却是不可缺少的,因此浏览器监控也是监控体系中不可缺少的一环节。浏览器监控体系也是包含三部分,探针采集数据发送后端、后端处理数据给到前端、前端呈现给用户。

探针的实现取决于应用如何运行,对于浏览器应用来说,主要是前端基于html/cssJAVAScript进行开发,用户在浏览器输入URL,首先在本地进行缓存查询是否有该地址对应的IP地址,如果没有则再使用DNS进行域名解析,找到提供服务的地址,其次再对该地址进行TCP三次握手连接,发送请求获取请求数据,获取到数据后进行数据解析,包括HTML文档解析、DOM构建、页面渲染,最后呈现给到可视化页面用户。

因此浏览器探针是一段JS代码,通过浏览器的加载事件、导航事件等获取页面访问的数据,比如浏览器基本信息、采集页面性能数据、采集Ajax性能数据和请求响应数据、JS错误数据、页面追踪数据等,再发送给到后台处理加工,形成用户运营数据(比如页面PV、运营商信息、浏览器信息、访问城市省会信息)、运维数据(比如Ajax错误信息、JS缓慢页面信息),帮助运营了解产品用户情况,更好的推广营销、帮助研发运维团队解决产品生产环境中的功能性能问题。

 

服务器监控

对于服务器监控主要是监控后端系统的运行情况,因Java、Pythonphp、.Net/.NetCore、C/C++、Golang等语言都可以开发后端应用,因此服务器探针也包含各种语言的探针。从这八种开发语言的特性来看,有的语言是编译型,即将源代码翻译成机器码后才能运行,例如Golang,C/C++;有的语言是解释型,边执行边翻译,例如PHP、Python;有的语言是混合型,介于编译型和解释型之间,即把代码编译成中间码再在语言提供的平台运行,例如Java、.Net/.NetCore。因此不同类型语言的探针实现也不一样。

对于解释型语言来说,使用HookApi的方式实现,例如Python在运行过程中会需要调用框架和函数,因此Python探针针对各个框架各数据库需要专门定义Hook函数,探针启动时会将我们写好的Hook函数(针对WEB框架,WSGI,数据库等)加入sys_meta_path中,这样用户函数在执行后就会先执行我们定义好的Hook函数,采集数据;对于编译型语言来说,使用SDK的方式实现,总体的思路和HookAPI一致,差别在于SDK是完全封装好的内容;对于混合型语言来说,使用Agent的方式实现,比如Java探针在JavaSE的Instrumention上做开发,在Java代码编译的时候进行了代码注入,Java探针依附在Java进程里,不会创建新的进程,而是创建多个线程来采集和汇总数据,如下图所示 用户的类A.class通过ClassLoader装载进JVM时会调用Javaagent嵌入监控代码生成A'.class,当有用户请求进来时,Engine会找到A'.class执行正常的业务逻辑,逻辑执行完毕后Engine会将监控Data写入监控数据缓存区(即一次采集周期),并且每隔60s会向Server发送数据,清理缓存区。

大概是全网介绍监控最全面的文章了

 

探针采集了应用运行函数的时间运行轨迹、调用数据库、第三方服务、消息中间件、下一个业务系统的时长和调用语句,经过后端处理分析,呈现给用户应用调用全链路拓扑图、函数执行堆栈、函数响应时间和调用次数、慢/错SQL语句、慢外部调用语句,帮助研发人员了解整体业务运行情况,快速定位分析后端错误、优化应用性能。

 

网络监控

对于网络监控,主要是获取应用运行过程中的网络情况定位数据传输过程中的网络问题。实现方式是探针安装用户的数据中心,通过将流经交换机的流量拷贝出来(即旁路镜像),解析网络协议(如TCP、SNMP)获取数据,然后将数据发送给后端进行处理分析,最后在前端呈现给用户。用户通过网络监控可获取网络流量、吞吐量、带宽利用率、丢包率、包连接情况、连接尝试情况、建链时间、网络传输时间、URL页面耗时、SQL执行耗时等,快速定位网络问题、带宽问题,优化网络使用情况。这种方式最大的好处就是对用户业务没有入侵,因为是将流量完全拷贝出来再做分析处理,通常银行、金融等对业务可用性要求极高的行业会使用此类监控方式。

 

日志监控

日志即服务的运行轨迹,所有的服务在运行中都会产生日志,主要有主机日志、网络设备日志、应用日志、中间件日志、数据库日志等五种类型。日志监控的实现逻辑是通过日志探针、上传日志、对接MQ队列接口获取数据源,再给到后台处理分析,最后在前端呈现。用户可在前端根据业务出现问题的时间范围来获取该段时间内的日志,也可以输入关键字进行搜索日志,通过日志可了解应用的原生运行情况,帮助研发人员快速定位问题。日志平台最重要的两个能力是存储大量数据、快速搜索能力,对于搜索来说一般采用Eleasearch大数据来提供数据的存储和搜索功能。

 

基础设施监控

基础设施包括物理机房、服务器、网络设备、中间件、数据库、存储、虚拟化等,对于基础设施的监控则包含该机房运行环境的温度湿度、服务器的CPU内存磁盘网络、数据库的数据库类型、版本、字符集、IP端口、状态、安装路径和数据库大小等。对于非物理机房类型的实现逻辑是通过各种协议(SNMP、WMI、Telnet、SSH、IPMI、JMX、JDBC、Agent等)对各种原始数据进行采集,再通过协议解析数据,后台处理加工,前台呈现给到用户;对于物理机房的实现逻辑是通过API接口调用服务器的数据。运维人员通过基础设施监控,便能全景了解整个业务物理情况,当机房断电或服务器CPU内存指标异常时,通过升级硬件的方式便能解决问题。

通过上述各类监控平台的介绍,相信你对监控产品的类别、监控的使用与价值、实现原理已经清晰了吧。对于研发人员来说,选对了监控产品,在业务运行过程中便能事半功倍,大幅度提高开发效率;对于运维人员来说,选对了合适的监控产品,在业务运维过程中也更能保障业务的正常运行,提高用户满意度;对于想入门监控的同学来说,每一个方向的监控原理和用户价值都很清晰了,结合自己兴趣,选择最适合自己的运维监控领域即可。



Tags:监控   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
大家好,我是等天黑, 今天介绍一个开源免费的监控工具 Uptime Kuma, 简单实用, 主要用来监控 Web 和网络, 和 Prometheus 不一样的是, 它是轻量的, 基于Node.js 和 Vue 3 开发...【详细内容】
2021-12-16  Tags: 监控  点击:(13)  评论:(0)  加入收藏
在Kubernetes已经成了事实上的容器编排标准之下,微服务的部署变得非常容易。但随着微服务规模的扩大,服务治理带来的挑战也会越来越大。在这样的背景下出现了服务可观测性(obs...【详细内容】
2021-11-02  Tags: 监控  点击:(40)  评论:(0)  加入收藏
最近微信“监控”状态火了,很多用户的微信主页都装上了动态的“摄像头”。 这到底是怎么做到的呢?其实设置方法非常简单,只需要用到一张动态表情图。 然后将表情图长按,并添加...【详细内容】
2021-10-19  Tags: 监控  点击:(1775)  评论:(0)  加入收藏
谈起水表,基本上每一个家里都是有一款水表,用于计量家中的用水量。伴随着我们生活水平的提升,水表的工艺也在不断发展,远程监控水表在日常生活中愈来愈广泛,那么以NB-IOT为例子,告...【详细内容】
2021-10-09  Tags: 监控  点击:(62)  评论:(0)  加入收藏
网络监控摄像头已经进入了我们生活的方方面面,它以安装使用方便及价格低廉,在现代社会得到了极大的普及。在网络摄像机安装过程中,有很多需要注意的问题,下面简要介绍六个问题及...【详细内容】
2021-09-26  Tags: 监控  点击:(82)  评论:(0)  加入收藏
监控系统硬盘怎么选择?常见的有绿盘、蓝盘、紫盘、黑盘、红盘分别代表了什么?有哪些不同呢?今天我们就来聊聊这个话题。在监控安装过程中,录像存储大多都是采用监控硬盘存储的。...【详细内容】
2021-09-22  Tags: 监控  点击:(180)  评论:(0)  加入收藏
MySQL的监控通过日志文件来实现。那么MySQL的日志文件有哪些类型呢? MySQL使用以下这几种类型的日志来记录服务器活动信息。Error log错误日志:关于启动、关闭和异常情况的诊...【详细内容】
2021-09-18  Tags: 监控  点击:(49)  评论:(0)  加入收藏
上篇我们讲解了光纤基础知识,知道了常见的光纤有单模、多模。单模: L ,波长1310 单模长距LH 波长1310,1550多模:SM 波长850 单模光纤与多模光纤的全面易懂的介绍用一句通俗...【详细内容】
2021-09-16  Tags: 监控  点击:(70)  评论:(0)  加入收藏
ntopng是原ntop下一代版本,网络流量实时监控显示。ntopng用户可以使用一个网页浏览器浏览的NTOP(即作为一个Web服务器)流量信息和得到网络状态转储。我采用的是git方式一、安装...【详细内容】
2021-09-07  Tags: 监控  点击:(54)  评论:(0)  加入收藏
Prometheus 是一款基于时序数据库的开源监控告警系统,说起 Prometheus 则不得不提 SoundCloud,这是一个在线音乐分享的平台,类似于做视频分享的 YouTube,由于他们在微服务架构的...【详细内容】
2021-08-26  Tags: 监控  点击:(59)  评论:(0)  加入收藏
▌简易百科推荐
HTTP 报文是在应用程序之间发送的数据块,这些数据块将通过以文本形式的元信息开头,用于 HTTP 协议交互。请求端(客户端)的 HTTP 报文叫做请求报文,响应端(服务器端)的叫做响应...【详细内容】
2021-12-27  程序员蛋蛋    Tags:HTTP 报文   点击:(0)  评论:(0)  加入收藏
一 网络概念:1.带宽: 标识网卡的最大传输速率,单位为 b/s,比如 1Gbps,10Gbps,相当于马路多宽2.吞吐量: 单位时间内传输数据量大小单位为 b/s 或 B/s ,吞吐量/带宽,就是网络的使用率...【详细内容】
2021-12-27  码农世界    Tags:网络   点击:(2)  评论:(0)  加入收藏
1.TCP/IP 网络模型有几层?分别有什么用? TCP/IP网络模型总共有五层 1.应用层:我们能接触到的就是应用层了,手机,电脑这些这些设备都属于应用层。 2.传输层:就是为应用层提供网络...【详细内容】
2021-12-22  憨猪哥08    Tags:TCP/IP   点击:(29)  评论:(0)  加入收藏
TCP握手的时候维护的队列 半连接队列(SYN队列) 全连接队列(accepted队列)半连接队列是什么?服务器收到客户端SYN数据包后,Linux内核会把该连接存储到半连接队列中,并响应SYN+ACK报...【详细内容】
2021-12-21  DifferentJava    Tags:TCP   点击:(9)  评论:(0)  加入收藏
你好,这里是科技前哨。 随着“元宇宙”概念的爆火,下一代互联网即将到来,也成了互联网前沿热议的话题,12月9日美国众议院的听证会上,共和党议员Patrick McHenry甚至宣称,要调整现...【详细内容】
2021-12-17  王煜全    Tags:Web3   点击:(14)  评论:(0)  加入收藏
一、demopublic static void main(String[] args) throws Exception { RetryPolicy retryPolicy = new ExponentialBackoffRetry( 1000, 3);...【详细内容】
2021-12-15  程序员阿龙    Tags:Curator   点击:(20)  评论:(0)  加入收藏
一、计算机网络概述 1.1 计算机网络的分类按照网络的作用范围:广域网(WAN)、城域网(MAN)、局域网(LAN);按照网络使用者:公用网络、专用网络。1.2 计算机网络的层次结构 TCP/IP四层模...【详细内容】
2021-12-14  一口Linux    Tags:网络知识   点击:(30)  评论:(0)  加入收藏
无论是在外面还是在家里,许多人都习惯了用手机连接 WiFi 进行上网。不知道大家有没有遇到过这样一种情况, 明明已经显示成功连接 WiFi,却仍然提示“网络不可用”或“不可上网”...【详细内容】
2021-12-14  UGREEN绿联    Tags:WiFi   点击:(25)  评论:(0)  加入收藏
拉了千兆宽带,买了标称 1300Mbps 的无线路由器,为什么 WiFi 还是跑不满千兆?要回答这个问题,我们先得知道这个 1300Mbps 是怎么来的。开始回答之前先说明一下,这期只讲 802.11ac,...【详细内容】
2021-12-14  Ubiquiti优倍快    Tags:WiFi   点击:(83)  评论:(0)  加入收藏
问题背景IPv6环境下,在浏览器中通过http://[vip:port]访问web业务,提示无法访问此网站,[vip]的响应时间过长。分析过程之前碰到过多次在PC浏览器上无法访问vip的情况,排查方法也...【详细内容】
2021-12-13  云原生知识星球    Tags:网络问题   点击:(27)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条