REST API
REST API 监视器会定期检查您的 REST API 端点在启用 IPv4 或 IPv6 的位置上的可用性和响应,并在 API 响应值未针对指定的 RegEx/XPath/JSONPath 断言进行验证时向您发出告警。此外,针对您指定的 JSON 模式测试和验证您的 JSON 响应。要批量导入 REST API 端点,只需将预定义的HAR/Swagger (JSON)/CSV 文件上传到 Site24x7。
目录
添加 REST API 监视器
- 登录到 Site24x7。
- 单击管理>资源清单>监视器>添加监视器。
- 在添加监视器页面中选择REST API 。
- 指定以下详细信息以添加网站监视器:
- 显示名称:为您要监控的网站提供适当的名称。
- Endpoint URL:输入需要监控的 REST Endpoint URL。
- 轮询频率:选择所需的轮询频率。频率可以设置为 30 秒到 1 天。如果您使用的是 Enterprise、Enterprise Web、Enterprise Plus Web、Elite 和 Elite Web Pack,则可以配置 30 秒。对于所有其他用户,1 分钟将是支持的最低轮询频率。
配置 30 秒轮询频率将消耗两个基本监视器的许可。
- 连接超时:指定需要与目标服务器建立连接的时间(以秒为单位)。
- 首选 IPv6:如果您想通过启用 IPv6 的位置监控端点 URL,只需在创建或编辑监控表单时将选项移至“是”。
- Site24x7 可让您根据需要监控基于双栈 IPv4/IPv6 的基础架构。IPv4 将作为默认协议启用。一旦您启用了 IPv6 的选项,您就可以监控您的 IPv6 基础设施。如果通过 IPv6 的连接失败,它不会自动回退到 IPv4。了解更多。
- 默认情况下,在监控表单中启用 IPv6 不会使其兼容监控 IPv4。如果您想监控与 IPv4 和 IPv6 兼容的资源,您必须为此设置两个单独的监控检查。
- 监控位置:从下拉列表中选择一个位置配置文件,从中监控网站。
要了解更多信息,请参阅位置配置文件。 - 监视器组:您可以通过从下拉列表中选择相关监视器组将监视器与多个监视器组关联。这允许对监视器进行逻辑分组。
要了解如何为您的监视器创建监视器组,请参阅监视器组。 - 依赖于监视器:从下拉列表中选择一个监视器以将其选为您的依赖资源。您最多可以添加 5 个监视器作为依赖资源。根据您的依赖资源的停机状态,将禁止向您的监视器发出告警。
配置依赖资源并根据依赖资源的状态抑制告警是为您提供更好的错误告警保护的一部分。了解有关监视器级别告警抑制的更多信息。
如果您在相关资源字段中选择“无”,则告警将按照您的正常配置设置进行。在这种情况下,不会抑制任何告警,因为监视器没有任何依赖资源。
对监视器的多监视器组支持允许监视器与不同监视器组中的多个依赖资源相关联。如果在正常的监视器状态检查期间,这些依赖资源的任何一个状态被标识为停机,监视器的告警将被自动抑制。但是,监视器级别的依赖项配置总是比任何其他监视器组级别的依赖项配置具有更高的优先级,以抑制告警。
- HTTP 方法:指定用于连接站点的方法——POST、GET、PUT、DELETE 和 PATCH。选择适当的单选按钮来配置您的表单提交方法。还要为 POST、PUT、PATCH HTTP 方法选择适当的主体类型。
POST 方法将提交参数以访问 URL。POST 提交方式支持以 FORM、Text、XML 或 JSON 格式发送请求。
在 GET 方法中,将获取整个 HTML 响应并检查您配置的关键字是否存在。 - 参数类型:如果您希望定义要发送到端点的 GraphQL 查询,请选择 GraphQL。
- GraphQL 查询: 提供 GraphQL 查询以从基于 GraphQL 的 API 服务获取响应的特定字段。
- GraphQL 变量:以 JSON 格式指定 GraphQL 查询中引用的变量的值。
如果您选择 POST 方法,GraphQL 查询和 GraphQL 变量将包含在请求正文中。在 GET 方法的情况下,GraphQL 查询和 GraphQL 变量将通过 URL 参数发送。 - HTTP 请求标头:有时您可能想要自定义默认的 HTTP 请求标头信息。在这种情况下,可以在此处添加附加的标头名称和标头值。
- 用户代理:设置自定义用户代理(Web 浏览器)以发送您的请求和 HTTP 标头。您可以从可用的用户代理中进行选择。
- 身份验证方法:管理监视器的多种授权方法。
- Basic/NTLM:配置基于 Basic/NTLM 的授权。Windows NTLM 是在 Windows 操作系统上运行的系统上使用的身份验证协议。
凭证:为需要基于基本/NTLM身份验证的 URL 指定您的用户名和密码。
- OAuth:如果您正在监视由 OAuth 框架保护的资源,请选择 OAuth 单选按钮。
OAuth 提供者名称:从您的预配置列表中选择 OAuth 提供者名称,或通过单击+按钮创建新的 OAuth 配置文件。
了解如何配置 OAuth 提供者。 - Web 令牌:向您的身份验证服务器注册 Site24x7,以使用 Web 令牌监控受保护的资源。
了解如何 添加 Web 令牌。 - 客户端证书: 对于需要客户端证书认证的网站,上传客户端证书(必须是 PKCS#12 文件。)
- OAuth:如果您正在监视由 OAuth 框架保护的资源,请选择 OAuth 单选按钮。
- Basic/NTLM:配置基于 Basic/NTLM 的授权。Windows NTLM 是在 Windows 操作系统上运行的系统上使用的身份验证协议。
- 查询权威名称服务器:使用切换按钮决定是否要通过权威名称服务器解析您的域名。
- 接受的 HTTP 状态代码:提供以逗号分隔的 HTTP 状态代码列表,指示成功响应。您可以指定单个状态代码,以及用冒号分隔的范围。了解有关接受的 HTTP 状态代码的更多信息。
- SSL 协议:指定 TLS/SSL 协议的版本号(支持 TLSv1.3、TLSv1.2、TLSv1.1、TLSv1 和 SSLv3)以验证正确的 SSL 握手。使用自动模式启用自动检测和协商。
SSL 协议验证仅适用于 HTTPS 域。如果您指定的 SSL 协议版本与实际版本不同,则轮询期间监视器状态将失败。
- HTTP 协议:选择要用于协商的应用层协议的首选版本(HTTP/1.1 或 HTTP/2)。
- 启用 ALPN:启用 ALPN 以确保仅将支持的的应用程序协议作为 TLS 握手的一部分发送,并确保减少往返时间。默认情况下,它将设置为是。本地部署轮询器不支持启用 ALPN 选项。我们将在下一次更新中扩展支持。
选择您偏好的响应格式。
- 如果选择的响应格式是文本
- 应包含字符串:当网站中不存在指定的关键字时收到告警。在复选框中提及关键字并使用滑块按钮触发所需类型的告警。
- 不应包含字符串:当指定的关键字出现在网站内容中时收到告警。在复选框中提及关键字并使用滑块按钮触发所需类型的告警。
在给定字段中添加关键字时,您必须遵守以下条件:
- 单个字符串或关键字可以配置有/没有任何双引号(例如:HTML)。
- 如果有两个字符串,它们包含一个关键字 - 在两个字符串之间添加一个空格并用双引号将其括起来。(例如:“HTML 响应”)。
- 如果您配置了多个单独的关键字,则必须用空格分隔它们,并为每个关键字使用双引号。(“监视器”“HTML”)。
- 区分大小写:启用此选项的切换按钮。
- 应该匹配正则表达式:根据特定模式是否与网站内容匹配来配置告警。例如,当您考虑表达式 ^[a-z0-9_-]{3,15}$ 时,您的网站内容应包含从 a 到 z 的字母、从 0 到 9 的数字、下划线和连字符。此外,最小长度应为 3 个字符,最大长度应为 15 个字符。不匹配时,你的网站会报“正则表达式”^[a-z0-9_-]{3,15}$“不匹配”作为原因。
- 了解有关内容检查的更多信息。
- 如果选择的响应格式是XML
- XPath 表达式:提供 XPath 表达式以启用 XPath 表达式断言的评估。断言必须成功解析 XML 中的 XPath 才能成功。您可以通过单击“+” 键添加多个 XML 表达式断言。
- XPath Severity:将 Alert Severity 指定为“停机或故障的”以决定指定 XPath 表达式断言由于不匹配而失败时的状态。
- XPath 或 XML 路径语言是一种用于从 XML 文档中选择节点的查询语言。使用Site24x7 XPath Evaluator获得更多帮助。
- 如果选择的响应格式是JSON
- JSONPath 表达式:您可以指定 JSONPath 断言并测试 JSON 响应中的预期数据。为了成功测试,断言必须成功解析 JSON 中的 JSON 路径。如果您需要帮助来构建 JSONPath 断言以针对您的 JSON 响应进行测试,您可以使用 Site24x7 JSONpath 表达式寻求帮助。您始终可以添加多个此类 JSONPath 断言来测试各个用例。使用 “+”键添加更多表达式断言。
每当处理断言时,JSON 断言中的目标值都会比较 JSON 响应中的实际值以检查多个测试场景。可以检查的常见测试场景包括:- 实际值为空
- 实际值不为空
- 实际值等于目标值
- 验证实际值是否大于或等于目标值
- 验证实际值是否小于或等于目标值
- 实际值包含目标值作为子字符串
- 目标值不包含在实际值中
JSON路径表达式 描述 状态 $.address.city 选择 'city' 属性的值,它是 'address' 属性的直接子级。 状态为 Up。City 属性是 address 属性的直接子级 $.address.country
选择“国家”属性的值,它是“地址”属性的直接子级。 状态为关闭。地址属性没有具有属性“国家”的子项。
$..type 选择输入 json 中所有“类型”属性的值。 状态为 Up。响应 json 具有“类型”属性作为其子项。
$.address.length() 选择“地址”属性的长度。
状态为 Up。地址属性存在于响应 json 中。
$..* 选择所有属性及其值。 状态为 Up。响应 JSON 具有多个属性。如果 JSON 响应中没有属性,则监视器将报告中断。
$.phoneNumbers[1] 从“phoneNumbers”数组中选择第二个值。 如果 phoneNumber 属性有 2 个或更多子实体,则状态为 UP。 $.phoneNumbers[?(@.number)] 如果其中包含“number”属性,请选择“phoneNumbers”属性。 如果 phoneNumber 属性至少包含一个具有 number 属性的子项,则状态将为 Up。 $.phoneNumbers[?(@.type ==\"iPhone\")] 选择“phoneNumbers”属性,“类型”是 iPhone。 如果 phoneNumber 属性至少包含一个属性类型为 iPhone 的 childr,则状态将为 UP。 $[?(@.age > 20)] 如果“时间”大于 20,则选择 JSON 对象。
如果时间属性值大于 20,则状态将为 UP。 - JSONPath 表达式:您可以指定 JSONPath 断言并测试 JSON 响应中的预期数据。为了成功测试,断言必须成功解析 JSON 中的 JSON 路径。如果您需要帮助来构建 JSONPath 断言以针对您的 JSON 响应进行测试,您可以使用 Site24x7 JSONpath 表达式寻求帮助。您始终可以添加多个此类 JSONPath 断言来测试各个用例。使用 “+”键添加更多表达式断言。
以下是针对定义的 JSON 模式验证 API 响应时测试的常见用例:
- 验证值是否属于某种类型(例如整数、字符串等)
- 确保 API JSON 响应结构正确
- 检查 JSON 响应中是否存在所需的键
- 测试不正确的 HTTP 响应(如 HTML 或 XML)是否针对您给定的 JSON 模式进行验证。
在配置响应头检查时,您必须根据以下条件添加值:
- 您可以添加多个标题,每个标题可以接受多个值。
- 可以使用/不使用任何双引号配置单个值(例如:keep-alive 或“keep-alive”)。
- 如果您配置了多个标题值,则必须用空格分隔它们,并为每个值使用双引号。(例如,“gzip”“br”)。
- 标头值还可以支持正则表达式验证。正则表达式模式应该是“${<regex>}”。例如: ${\d{4}} 可用于在头名中配置的头的值中搜索四个连续数字的数值。
监视器设置完成后,Site24x7 深度发现向导会扫描您的域并自动检测您域的所有相关 Internet 资源,这些资源可以添加到您的帐户中,以进行全面的 Internet 服务监控。探索有关互联网服务深度发现的更多信息。
详细了解REST API 监视器的各种性能指标。还可以了解REST API 事务监视器,它可以让您以 10 分钟的最低轮询频率监控多达 25 个 API 端点。