9 月 13 日,2025 Inclusion・外滩大会「开源嘉年华」正在限量报名中! 了解详情
写点什么

站点监控 | 网站健康检查的外科医生

  • 2019-09-11
  • 本文字数:2344 字

    阅读完需:约 8 分钟

站点监控 | 网站健康检查的外科医生

当今的互联网上,有成千上万个网站,提供着各种各样的服务,有电商、搜索、新闻、娱乐、在线教育等等,用户根据所需进行浏览和访问。网站做为网上服务的载体,稳定性至关重要,如果网站异常了,势必会影响诸多用户,给网站造成具大的流量损失。因此对于网站的维护者而言,第一时间发现网站的异常至关重要。


站点监控可实现对目标站点作实时的监控,如同外科医生一样,可对网站进行全方位的检查,在网站异常时及时通知用户进行止损操作。接下来将分上下两篇介绍站点监控,本文主要介绍站点的组成、站点的工作原理以及站点监控的功能需求。

首先我们来探讨一个概念 网站是什么?

A website is a collection of related web pages, including multimedia content, typically identified with a common domain name, and published on at least one web server.

A website may be accessible via a public Internet Protocol (IP) network, such as the Internet, or a private local area network (LAN), by referencing a uniform resource locator (URL) that identifies the site.


以上是维基百科对网站的定义:网站是一个网页资源的集合,这些资源部署在 Web 服务器上并通过域名进行标识,即一个站点包括网页、域名、Web Server(服务器)。


从狭义上来讲,一个对外提供服务的 Web 应用程序即可称为网站,我们可以通过统一资源定位符 URL 来访问该应用程序提供的静态或动态网页资源。


而从广义上讲,各种对外提供文件下载、流媒体传输、邮件服务等应用服务器,以各种形式为用户提供的多样网络服务,均可称之为站点。

那么,网站异常的场景是什么?

网站由域名、网页、Web Server(Web 服务器)组成,网站正常与否,也就是域名是否可以正常解析,Web 服务器是否可以正常连通以及是否可以正常工作,网页是否可以返回预期的内容。


图 1 以用户访问百度服务的请求为例,描述了用户的请求在到达这个百度服务地址之前,依次会经过用户所在地域的网络运营商接入设备→运营商骨干网链路→百度 IDC 所在地域的运营商接入设备→百度站点服务(具体细节可以参看文章《百度网络监控实战:猎鹰一战成名》)。



图 1 用户访问百度服务的请求示例


从物理链路来讲,在用户请求到达目标网站之前,任何一个服务或链路出现故障,都有可能会导致用户访问目标服务的体验受到影响(如延时变大或者访问失败),因此,站点监控中我们需要关注 DNS 解析,运营商网络,站点服务三个环节。网站异常的场景如下:

1 场景一

  • 域名被劫持了!进入了其他网站界面?


2010 年,百度 www.baidu.com 的域名遭到不法分子恶意篡改,导致全球多处用户不能访问百度网站,故障持续数小时,给用户带来很大的困扰,也给百度造成了巨大的流量损失。

2 场景二

  • 在北京的用户访问正常,广州的用户却无法访问?


用户到 Web 服务器间链路连接关系复杂,一次简单的请求涉及网络设备或链路不计可数,任何一处的设备或链路故障都有可能影响到某一区域的用户请求。

3 场景三

  • 网站响应速度慢,网站访问超时?


假如您是某购物网站的维护者,网站的访问量意味着订单量和收入。若某一时刻网站访问量增大,网站服务器负载已无法承接流量,出现大量的访问超时,严重影响用户体验,作为网站维护者,您如何第一时间感知以避免损失呢?

4 场景四

  • 网站中页面可以打开,但页面内容展示异常?


通常此种场景为网站内部某些处理逻辑或数据存在异常,单纯关注页面是否可访问无法发现这种错误,需要对网站页面或接口的返回内容进行监控。

5 场景五

  • 视频网站打开正常,里面的视频都播放不了?


除了常见的 HTTP 页面/接口请求,文件下载、流媒体传输、邮件服务或针对客户端定制的 TCP、UDP 接口异常,均会对用户造成影响。

网站异常对用户的影响如此之大 我们该如何应对?

通过对网站异常场景的分析,我们需要一款站点监控产品,通过模拟真实用户访问情况,探测站点的 DNS 解析、分地域/运营商连通性、站点性能等问题。站点监控需要具备如下几方面能力:

1 支持域名解析监控

通过对域名进行 DNS 解析,判断是否发生 DNS 劫持,避免 DNS 问题导致网站无法正常提供服务。

2 支持不同地域/运营商/网络制式探测

通过部署在全国的站点监控探测点,模拟不同终端用户的访问行为,获得全国各地域(省份/城市)、运营商(电信/联通/移动/教育网/…)、网络制式(固网/2G/3G/4G)到目标地址的访问数据,从而知晓各地域、各运营商的网络质量,供网站维护者针对性的进行网络接入优化。

3 支持采集多种指标数据

网站性能是体现网站体验的重要因素,我们通过获取目标站点的 DNS 域名解析时间、建连时间、下载时间、响应时间等指标来分析站点服务的性能瓶颈,优化站点的服务质量。

4 支持网站返回内容校验

通常,一个站点提供多种服务,对外呈现多种不同的数据和页面。我们需要模拟用户的请求,并校验返回的结果是否符合预期,来监控站点服务是否正常。为了模拟用户请求,针对 HTTP 请求需要支持 POST/GET 方法、多种请求参数、User-Agent 等 Header 参数、Cookie 等参数配置;为了校验返回结果,需要提供 HTTP Code 判断、返回内容匹配校验等支持。

5 支持不同协议类型

一个站点服务可支持多种协议的访问,我们需要从应用层、传输层对目标站点进行探测:应用层需要支持 HTTP/HTTPS/FTP/SMTP/DNS 等,传输层需要支持 TCP/UDP。

总结

站点监控是针对站点进行监控的产品,本文从总体上介绍了站点的工作原理以及站点监控的功能需求。如何实现这些功能,以满足站点的监控需求,我们将在下一篇文章中具体介绍。


作者介绍:


梁飞,百度高级研发工程师,负责百度云监控(BCM)系统的研发和可用性建设相关工作,在云监控、系统可用性方面有广泛的实践经验。


本文转载自公众号 AIOps 智能运维(ID:AI_Ops)。


原文链接:


https://mp.weixin.qq.com/s/R83izBHzqkA_OD1k1-aQmA


2019-09-11 23:431519

评论

发布
暂无评论
发现更多内容

一个宁静祥和没有bug的下午和SqlSession的故事

京东科技开发者

mybatis sql Spring Boot CLI SQLSession

Bigkey问题的解决思路与方式探索

vivo互联网技术

redis dba bigkey

数维图智慧化工园区三维系统 助力危化企业安全生产

2D3D前端可视化开发

物联网 数据可视化 数字孪生 智慧化工园区 化工园区三维可视化

鸿蒙系统ARKUI框架对于分布式计算和请求API的实战研究

恒山其若陋兮

前端 11月月更

基于鸿蒙系统的ArkUI框架的公共剪切类属性和多态样式在前后端分离项目中的表现

恒山其若陋兮

11月月更

深度解析KubeEdge EdgeMesh 高可用架构

华为云开发者联盟

云计算 云原生 后端 华为云

度量BGP监测源数量对AS可见性的影响

郑州埃文科技

AS IP地址 BGP数据源

OpenHarmony 3.2 Beta多媒体系列——音视频播放框架

OpenHarmony开发者

OpenHarmony

LR低代码快速开发平台 高效调整企业组织架构

力软低代码开发平台

不懂Hybird开发,感觉错过一个亿~

FinFish

小程序 前端框架 APP开发 APP软件开发、 混合开发

【Ajax】全面了解http协议

坚毅的小解同志

HTTP 11月月更

字节跳动基于数据湖技术的近实时场景实践

字节跳动数据平台

数据湖 火山引擎

ArkUI框架基于鸿蒙系统的Scroll和Scroller和自定义组件之插槽的实战案例心得

恒山其若陋兮

前端 11月月更

旺链科技肖慧荣登超级账本2022年第三季度中国贡献榜

旺链科技

区块链 产业区块链 VoneBaaS 企业号十月PK榜

基于Spring-AOP的自定义分片工具

京东科技开发者

aop 数据分片 spring aop 配置文件

【Ajax进阶】跨域和JSONP的学习

坚毅的小解同志

ajax 11月月更

【jquery ajax】实现文件上传提交

坚毅的小解同志

ajax 11月月更

4.0体验站|OceanBase 4.0 我回来给你点个赞

OceanBase 数据库

Go定时任务源码 - robfig/cron

人生如梦

Go 定时任务 cron

元器件科普|变压器的分类及形状构造

元器件秋姐

元器件采购 华秋商城 变压器 电感器 电压

传输线路动态巡检探索

鲸品堂

网络 传输网络

提升80%上云集成效率, TA是如何做到的

华为云开发者联盟

云计算 后端 华为云 云集成

大模型狂欢背后:AI基础设施的“老化”与改造工程

OneFlow

人工智能 深度学习 大模型

【Ajax】如何通过axios发起Ajax请求

坚毅的小解同志

ajax 11月月更

计算机网络:数据链路层设备

timerring

计算机网络 11月月更 网桥

5分钟搭建图片压缩应用

华为云开发者联盟

云计算 后端 华为云 函数工作流

通过实战总结的 使用Go的小技巧

王中阳Go

Go golang 高效工作 学习方法 11月月更

【原生Ajax】全面了解xhr的概念与使用。

坚毅的小解同志

ajax 11月月更

【web 开发基础】PHP 变量的作用范围 (29)

迷彩

作用域 静态变量 全局变量 局部变量 11月月更

“如何实现高效的应用交付”鲁班会开发者训练营厦门站进行时

华为云开发者联盟

云计算 软件开发 华为云 应用集成

【Ajax】如何通过axios发起Ajax请求

坚毅的小解同志

ajax 11月月更

站点监控 | 网站健康检查的外科医生_文化 & 方法_梁飞_InfoQ精选文章