您可以通过创建站点监控任务,对互联网进行网络探测,进而实现网络质量分析和性能分析。

前提条件

  • 如果您需要在创建站点监控任务的同时设置报警规则,则建议您先创建报警联系人和报警联系组,以便在设置报警规则时选择相应的报警联系组,用于接收报警通知。具体操作,请参见创建报警联系人或报警联系组
  • 如果您需要在设置报警规则时使用报警回调功能,则请准备通过公网访问的回调URL,并在已有的运维系统或消息通知系统的告警方式中开启URL回调。

背景信息

站点监控主要用于通过发送模拟真实用户访问的探测请求,监控从阿里云数据中心到您服务站点的访问情况。以下是站点监控的典型应用场景。
  • 域名解析异常监控

    通过使用站点监控功能配置定时DNS拨测任务,选择中国移动、中国电信、中国联通三大运营商在中国省会城市的探测点对域名进行DNS拨测,获得域名在中国各省运营商公共DNS服务器的解析结果内容。如果拨测获得的中国各省运营商公共DNS服务器的解析结果与域名真实配置的解析记录指向不同,则说明域名在中国某些省份运营商解析出现异常(可能出现DNS劫持或污染)。

  • 服务可用性监控

    通过使用站点监控功能配置定时HTTP(S)拨测任务,选择分布在全球的探测点对域名进行HTTP(S)拨测,并根据协议拨测结果状态码识别服务的的可用性,通过配置监控告警条件,可在出现异常状态时立马报警,并收到服务故障信息。此外,您还能观察到不同地域运营商线路探测点到服务的网络响应时间时延,了解不同地域运营商的用户访问时延体验,可为系统部署架构优化提供参考依据。

  • 网络质量对比分析

    通过使用站点监控功能配置定时ping拨测任务,根据需要选择发起拨测的不同国家地域的运营商探测节点,运行一段时间后可以观察到不同国家地域的运营商线路到目标服务的网络时延情况。另外也可以配置多个ping拨测任务,进行不同任务间拨测结果的对比,用来观察多个不同拨测目标的网络访问质量优越性。

操作步骤

  1. 登录云监控控制台
  2. 在左侧导航栏,选择网络分析与监控 > 站点监控(定时拨测)
  3. 监控任务页签,单击创建任务
  4. 创建任务页面,设置站点监控任务的相关信息。
    • 基本信息
      • 任务类型HTTP(S)
        参数 描述
        任务名称 站点监控任务支持的任务名称。取值:4~100个字符,支持英文字母、数字、下划线(_)和汉字。
        监控地址 站点监控的目标地址。取值:
        • GET(默认值)
        • POST
        • HEAD
        监控频率

        站点监控的周期。取值:15秒、1分钟、5分钟、15分钟、30分钟和60分钟。例如:选择1分钟频率,各地域探测点将以1分钟一次的频率监控目标地址。

        高级设置 关于HTTP(S)的高级设置,请参见高级设置
      • 任务类型PING
        参数 描述
        任务名称 站点监控任务支持的任务名称。取值:4~100个字符,支持英文字母、数字、下划线(_)和汉字。
        监控地址 站点监控的目标地址。
        监控频率

        站点监控的周期。取值:15秒、1分钟、5分钟、15分钟、30分钟和60分钟。例如:选择1分钟频率,各地域探测点将以1分钟一次的频率监控目标地址。

        ping包数目 发起ping的次数。默认值:10。
      • 任务类型DNS
        参数 描述
        任务名称 站点监控任务支持的任务名称。取值:4~100个字符,支持英文字母、数字、下划线(_)和汉字。
        监控地址 站点监控的目标地址。
        监控频率

        站点监控的周期。取值:15秒、1分钟、5分钟、15分钟、30分钟和60分钟。例如:选择1分钟频率,各地域探测点将以1分钟一次的频率监控目标地址。

        类型 DNS查询的类型。取值:
        • A(默认值)
        • MX
        • NS
        • CNAME
        • TXT
        • ANY
        • AAAA
        DNS访问协议 DNS访问的协议。取值:
        • udp(默认值)
        • tcp
        • tcp-tls
        DNS服务器 DNS服务器类型。取值:
        • 系统默认DNS
        • 探测点对应的运营商DNS
        • 自定义DNS
        DNS失败后重试次数 DNS探测失败后的重试次数。
        期望解析结果

        云监控对域名解析的结果进行验证,验证是否包含您期望的域名或IP地址。当期望列表是DNS列表的子集时,表示探测成功。

        多个域名或IP地址之间用半角逗号(,)分隔。

        匹配规则 域名或IP地址的匹配规则。
      • 任务类型TCPUDP
        参数 描述
        任务名称 站点监控任务支持的任务名称。取值:4~100个字符,支持英文字母、数字、下划线(_)和汉字。
        监控地址 站点监控的目标地址。
        监控频率

        站点监控的周期。取值:15秒、1分钟、5分钟、15分钟、30分钟和60分钟。例如:选择1分钟频率,各地域探测点将以1分钟一次的频率监控目标地址。

        端口 TCP或UDP协议的端口。默认值:80。
        高级设置 关于TCP或UDP的高级设置,请参见高级设置
      • 任务类型SMTPPOP3
        参数 描述
        任务名称 站点监控任务支持的任务名称。取值:4~100个字符,支持英文字母、数字、下划线(_)和汉字。
        监控地址 站点监控的目标地址。
        监控频率

        站点监控的周期。取值:15秒、1分钟、5分钟、15分钟、30分钟和60分钟。例如:选择1分钟频率,各地域探测点将以1分钟一次的频率监控目标地址。

        端口 SMTP协议或POP3协议的端口。

        SMTP协议的默认值:25。

        POP3协议的默认值:110。

        用户名

        FTP服务器的用户名和密码。

        密码
        安全连接 SMTP协议或POP3协议是否使用安全连接。取值:
        • 使用
        • 不使用
      • 任务类型FTP
        参数 描述
        任务名称 站点监控任务支持的任务名称。取值:4~100个字符,支持英文字母、数字、下划线(_)和汉字。
        监控地址 站点监控的目标地址。
        监控频率

        站点监控的周期。取值:15秒、1分钟、5分钟、15分钟、30分钟和60分钟。例如:选择1分钟频率,各地域探测点将以1分钟一次的频率监控目标地址。

        端口 FTP协议的端口

        默认值:21。

        是否匿名登录
        • 匿名登录(默认值)
        • 需要身份验证

          当您选择该参数时,需要设置FTP服务器的用户名和密码。

        用户名

        FTP服务器的用户名和密码。

        密码
    • 断言定义
      任务类型HTTP(S)时,您可以通过断言功能根据一次探测的返回内容设置可用条件,判断结果是否符合预期。您可以为断言设置多个可用条件,仅当所有条件都满足时,本次探测结果才被定义为可用。
      说明 对于HTTP探测,如果您未设置状态码的断言,则默认小于400的状态码均可用。
      云监控默认提供一个可用条件,如果该条件不能满足您的需求,请按照如下操作添加可用条件。
      1. 单击添加条件组
      2. 设置断言的可用条件的相关信息。
        • 响应时间:判定响应时间是否符合预期。默认时间:小于1000ms。
        • 状态码:判定响应状态码是否符合预期。默认状态码:小于400。
        • Header:判定响应Header中的字段是否符合预期。响应Header需要您自定义。
        • bodybody的xml字段body的json字段:通过文本字符匹配、XML解析(XPath)和JSON解析(JSON Path)判断返回Body中的内容是否符合预期。更多信息,请参见XPath语法说明JSON Path语法说明
      3. 单击拨测验证
        您可以在右侧查看拨测验证结果。
        • 当拨测验证成功时,您可以正常创建站点监控任务。
        • 当拨测验证失败时,您可以在对应探测点发起网络诊断探测。
      当出现不符合条件的响应信息时,您可以在对应探测点发起PING和MTR(My traceroute)网络诊断探测。
      说明 MTR是集合PING和Traceroute功能的网络诊断工具。
    • 选择探测点
      参数 描述
      IP探针类型 探测点的IP探针类型。包括:IPv4和IPv6。
      选择探测点 站点监控的默认探测点和自定探测点。
      如果云监控默认提供的探测点不能满足您的需求,请按照如下操作自定义探测点。
      1. 单击自定义探测点选择后面的修改图标。
      2. 单击创建模板
      3. 输入模板名称,选择自定义探测点。
      4. 单击确定
      5. 单击确定
    • 设置告警
      云监控默认提供一条报警规则。如果默认规则不能满足您的需求,请按照如下操作重新添加规则。
      1. 单击添加规则描述
      2. 设置规则描述相关参数。
        参数 描述
        规则名称 报警规则的名称。
        指标名称 报警规则的指标名称。取值:
        • 可用探测点百分比

          可用探测点百分比=(域名或IP地址在一个探测周期内可以正常访问的次数/探测总次数)×100。

        • 不可用探测点数量

          不可用探测点数量是指域名或IP地址在一个探测周期内不能正常访问的次数。

        • 可用探测点数量

          可用探测点数量是指域名或IP地址在一个探测周期内可以正常访问的次数。

        • 任意错误码(独立报警)

          当任意一个探测点的探测结果符合该状态码时,就会报警。

        • 所有错误码(组合报警)

          当所有探测点的探测结果都符合该状态码时,才会报警。

        • 响应时间
        比较 报警规则的阈值比较符。取值:
        • >=
        • >
        • <=
        • <
        • =
        • !=
        • 同比昨天同时间上涨
        • 同比昨天同时间下降
        • 同比上周同一时间上涨
        • 同比上周同一时间下降
        • 环比上周期上涨
        • 环比上周期下降
        阈值和报警级别 报警级别和该级别对应的阈值。

        报警级别取值:Critical(严重)、Warn(警告)和Info(信息)。

        报警连续周期取值:1、2、3、4、5、10、15和20。

        标签 报警规则的标签。
      3. 单击确定
    • 配置报警联系组
      参数 描述
      报警联系人组 发送报警的联系人组。

      站点监控的报警通知会发送给该报警联系人组中的报警联系人。报警联系人组是一组报警联系人,可以包含一个或多个报警联系人。

      关于如何创建报警联系人和报警联系人组,请参见创建报警联系人或报警联系组

      通道沉默时间 报警发生后未恢复正常,间隔多久重复发送一次报警通知。取值:5分钟、15分钟、30分钟、60分钟、3小时、6小时、12小时和24小时。

      某监控指标达到报警阈值时发送报警,如果监控指标在通道沉默周期内持续超过报警阈值,在通道沉默周期内不会重复发送报警通知;如果监控指标在通道沉默周期后仍未恢复正常,则云监控再次发送报警通知。

      说明 单击高级设置,可设置该参数。
      生效时间 报警规则的生效时间,报警规则只在生效时间内才会检查监控数据是否需要报警。
      说明 单击高级设置,可设置该参数。
      报警回调 公网可访问的URL,用于接收云监控通过POST请求推送的报警信息。目前仅支持HTTP协议。关于如何设置报警回调,请参见使用阈值报警回调
      说明 单击高级设置,可设置该参数。
  5. 单击创建

相关操作

当站点监控任务在探测过程中显示assertion failed时,说明断言失败,您可以执行如下操作查看失败原因。
  1. 站点监控列表页面的监控任务页签,单击目标站点监控任务的任务名称。
  2. 概览页面的探测结果中,单击错误页签。
  3. 单击目标探测点对应操作列的问题排查,查看断言失败的原因。

高级设置

监控类型的高级设置如下表所示。
  • HTTP(S)
    参数 描述
    HTTP请求头
    HTTP请求头格式为key1:value1,通过回车键换行。站点监控会在请求头中预置以下Header:
    • Host:${监控地址中的域名}
    • Pragma:no-cache
    • Cache-Control:no-cache
    • User-Agent:Chrome/57
    • Accept: */*

    当请求内容是表单时,还会有以下Header:

    Content-Type: application/x-www-form-urlencoded;charset=UTF-8

    如果您的Header中出现了以上内容的某一项或某几项,则这几项将被您的设置所覆盖。

    说明 根据HTTP协议,您提供的请求头中的key会被站点监控转换为canonical format of MIME Header形式:
    • 首字母以及短划线(-)后面的字母被转换为大写形式。如accept-encoding被转换为Accept-Encoding。
    • 如果key中包含空格或其他非法字符,则key保持不变。
    Cookie HTTP规则的Cookie文本。
    请求内容 请求内容的格式为key1=value1;key2=value2或一段JSON代码{"test":"testValue"}
    说明请求方法选择POST时,需要设置该参数。
    匹配响应方式
    当匹配响应内容非空时,站点监控读取HTTP服务器回应Body的前64K,从中查找匹配响应内容。取值:
    • 包含匹配内容则报警
    • 不包含匹配内容则报警

    站点监控会根据匹配响应方式来决定是否报警。

    匹配内容仅支持英文。

    匹配响应内容
    可接受的大于等于400的HTTP状态码 大于等于400的HTTP状态码。多个状态码之间用半角逗号(,)分隔。
    HTTP验证用户名 通过HTTP协议的基础验证。
    HTTP验证密码
    证书验证 是否支持SNI。默认不勾选,即不支持。
    不跟随跳转 如果出现301或302状态码,是否跟随再次做重定向探测。默认不勾选,即跟随跳转。
    是否开启ProxyProtocol 是否开启代理协议。默认不勾选,即不支持。
    DNS服务器 DNS服务器的IP地址。
  • TCP或UDP
    选项 描述
    请求内容格式 请求内容非空时有效。取值:
    • 文本
    • 十六进制格式
    请求内容
    • 文本
      普通文本指字符串,即由可见字符组成的字符串。
      说明 普通文本不支持转义,即不会将\n转为回车符,只是当做两个字符:\和n。
    • 十六进制格式

      当请求的内容是Byte串,无法用可见字符表达时,可以将Byte串转换为十六进制表示的可见字符串形式。具体转换规则为:一个Byte转换成二字节的十六进制字符,例如:(byte)1转换成十六进制为01, (byte)27转换成十六进制为1B。

      二进制数组(Java形式):{(byte)1, (byte)27}转换成十六进制为:011b或011B。站点监控对十六进制不区分大小写。将字符串"011B"填入请求内容中,同时请求内容格式选择十六进制格式

    匹配响应内容格式 响应内容非空时有效。取值:
    • 文本
    • 十六进制格式
    匹配响应内容
    • 文本
      普通文本指字符串,即由可见字符组成的字符串。
      说明 普通文本不支持转义,即不会将\n转为回车符,只是当做两个字符:\和n。
    • 十六进制格式

      当请求的内容是Byte串,无法用可见字符表达时,可以将Byte串转换为十六进制表示的可见字符串形式。具体转换规则为:一个Byte转换成二字节的十六进制字符,例如:(byte)1转换成十六进制为01, (byte)27转换成十六进制为1B。

      二进制数组(Java形式):{(byte)1, (byte)27}转换成十六进制为:011b或011B。站点监控对十六进制不区分大小写。将字符串"011B"填入请求内容中,同时请求内容格式选择十六进制格式