正常运行时间检查是向资源发送的请求,用于查看资源是否响应。您可以使用正常运行时间检查来确定虚拟机实例、App Engine 服务、网址或 AWS 负载平衡器的可用性。
您可以创建提醒政策来在正常运行时间检查失败时创建突发事件,以监控资源的可用性。您可以将提醒政策配置为通过电子邮件或其他渠道通知您,并且该通知可以包含未响应资源的详细信息。您还可以选择在 Monitoring 正常运行时间检查信息中心中观察正常运行时间检查的结果。
本页面介绍如何执行以下操作:
- 创建新的正常运行时间检查。
- 查看正常运行时间检查信息中心。
- 修改正常运行时间检查。
- 删除正常运行时间检查。
如需查看指向价格页面以及描述如何监控正常运行时间检查的页面的链接,请参阅后续步骤部分。
准备工作
能否使用正常运行时间检查取决于保护您的服务的防火墙。
- 如果您检查的资源不是公开提供的,您必须将资源的防火墙配置为允许正常运行时间检查服务器的流量传入。请参阅获取 IP 地址以下载 IP 地址列表。
- 如果您正在检查的资源没有外部 IP 地址,则正常运行时间检查将无法访问该资源。
正常运行时间检查不会加载页面资产或运行 JavaScript,并且正常运行时间检查的默认配置不包含身份验证。
对于 HTTP 和 HTTPS,如果响应是指向其他网址的重定向,则检查将从该网址中检索数据。最后,正常运行时间检查会评估数据以确定检查是成功还是失败。
要确保检查成功,必须满足以下条件:
- HTTP 状态为
Success
。 - 数据不包含所需内容,或者所需内容已存在。
- HTTP 状态为
创建正常运行时间检查
本部分介绍如何创建和配置正常运行时间检查。
控制台
如需使用 Google Cloud Console 创建正常运行时间检查,请执行以下操作:
在 Cloud Console 中,选择 Monitoring:
点击正常运行时间检查。
点击创建正常运行时间检查。
输入正常运行时间检查的说明性标题,然后点击下一步。
指定正常运行时间检查的目标:
选择协议。您可以选择 HTTP、HTTPS 和 TCP。
选择以下资源类型之一:
- 网址:任何 IPv4 地址或主机名。路径和端口分开输入。
- App Engine:App Engine 应用(模块)。
- Instance:Compute Engine 或 AWS EC2 实例。
- Elastic Load Balancer:AWS 负载平衡器。
输入特定于协议的字段:
对于 TCP 检查,请输入端口。
对于 HTTP 和 HTTPS 检查,您可以选择在主机或资源中输入路径。使用这些协议的所有正常运行时间检查都会向
http://target/path
发送请求。在此表达式中,对于网址资源,target
是主机名或 IP 地址。对于 App Engine 资源,target
是派生自服务名称的主机名。对于实例和负载平衡器资源,target
是根据您为资源或资源组提供的名称派生的 IP 地址。如果您将
path
字段留空或将值设置为/
,则将向http://target/
发出请求。要向网址资源
example.com/tester
发出正常运行时间检查,请将主机名字段设置为example.com
,将路径字段设置为/tester
。假设您已使用支持
/
和/hello
的调度程序将服务器部署到 App Engine。如果您将路径字段留空,则会将正常运行时间检查发送到/
处理程序。要向/hello
处理程序发出正常运行时间检查,请将路径字段的值设置为/hello
。
输入特定于资源的字段:
对于网址资源,请在主机名字段中输入主机名。例如,输入
example.com
。对于 App Engine 资源,请在服务字段中输入服务名称。
对于 Elastic Load Balancer 和实例资源,填写以下字段:
- 要向单个实例或负载平衡器发出正常运行时间检查,请在适用对象字段中选择单个,然后使用菜单选择特定实例或负载平衡器。
- 要向 Monitoring 组发出正常运行时间检查,请在适用对象字段中选择组,然后使用菜单选择组名称。
检查频率字段控制正常运行时间检查的执行频率。您可以保留默认值,也可以从选项菜单中选择一个值。
要配置检查工具区域,或为 HTTP 和 HTTPS 检查配置 SSL 证书、身份验证、标头和端口,请点击更多目标选项:
- 区域:选择正常运行时间检查将从中接收请求的区域。正常运行时间检查必须至少有 3 个检查工具。除美国有 3 个检查工具外,其他所有区域都只有 1 个检查工具。默认设置全球包括所有区域。
- 常规:填写此字段以检查虚拟主机。此字段不适用于 TCP 检查。
- Port:指定端口号。
自定义标头:提供自定义标头,并根据需要对其进行加密。加密后表单中标头的值会被隐藏。 对您不想向他人显示的身份验证相关标头使用加密。
Authentication:提供一个用户名和密码。这些值将作为 Authorization 标头发送。如果您在此处设置了值,请不要另外再设置 Authorization 标头;如果您设置了 Authorization 标头,则不要在此处设置值。密码将始终隐藏在表单中。此字段不适用于 TCP 检查。
SSL 证书验证:如果您为网址资源选择了 HTTPS,则默认情况下,服务会尝试通过 HTTPS 连接并验证 SSL 证书。如果网址的证书无效,则正常运行时间检查会失败。证书无效的原因包括:证书过期,自签名证书,域名不匹配的证书,以及使用 AIA 扩展程序的证书。
若要强制执行 HTTPS 正常运行时间检查以验证 SSL 证书,请确保选择验证 SSL 证书。
要停用 SSL 证书验证,请确保清除验证 SSL 证书。
如果您拥有带权限信息访问 (AIA) 扩展程序的 SSL 证书,则必须停用 SSL 证书验证。这些类型的证书不受支持,且不会通过验证序列。通常,错误消息为“在 10000 毫秒内以 SSL 握手错误响应”。
您可以使用指标
monitoring.googleapis.com/uptime_check/time_until_ssl_cert_expires
创建在证书到期前向您发送通知的提醒。如需了解详情,请参阅示例政策:正常运行时间检查政策。选中验证 SSL 证书复选框。
点击下一步。
配置响应要求:
从选项菜单中选择响应超时。您可以选择介于
1
到60
秒之间的任何值。如果在此超时期限内未收到多个位置的响应,则正常运行时间检查失败。对于内容匹配,请确保切换标签为已启用内容匹配:
- 从选项菜单中选择响应内容匹配类型。此字段用于确定如何将响应内容与返回的数据进行比较。例如,如果响应内容为
abcd
且内容匹配类型为包含,则在响应数据包含abcd
时正常运行时间检查会成功。如果响应不包含abcd
,则正常运行时间检查会失败。 - 输入响应内容。此值必须是不超过 1024 个字节的字符串。在 API 中,这是
ContentMatcher
对象。
- 从选项菜单中选择响应内容匹配类型。此字段用于确定如何将响应内容与返回的数据进行比较。例如,如果响应内容为
如果您不希望将正常运行时间检查发送到 Cloud Logging,请取消选中日志检查失败。
点击下一步
创建提醒政策。当您的正常运行时间检查受提醒政策监控时,如果正常运行时间失败,则系统会创建突发事件,并向附加到该政策的所有通知渠道发送通知。例如,如果您向政策添加了电子邮件地址,则系统会向该地址发送电子邮件。您可以在此步骤中创建提醒政策,也可以在创建检查后创建提醒政策。
如果您不想在此流程中创建提醒政策,请确保切换按钮对应的文本为不创建提醒。点击按钮更改切换状态。
要创建提醒政策作为此流程的一部分,请执行以下操作:
确保切换按钮文本为创建提醒。如有必要,请点击该按钮。
在名称字段中,输入提醒政策的名称或使用默认名称。
要向提醒政策添加一个或多个通知渠道,请在通知渠道文本框中点击菜单arrow_drop_down。选择要添加的渠道,然后点击 确定。系统会针对每种渠道类型按字母顺序将通知渠道分组。
如果您要添加到提醒政策的通知渠道未列出,请点击管理通知渠道。
系统会将您转到新的浏览器标签中的通知渠道窗口。添加通知渠道,然后返回此标签,点击刷新 refresh,然后选择要添加到提醒政策的通知渠道。
在时长字段中,选择在创建突发事件之前正常运行时间检查必须失败的时长。默认情况下,将提醒政策配置为至少 2 个区域报告正常运行时间检查失败的时长达到 1 分钟时创建突发事件。
如需了解如何停用、修改和删除提醒政策,请参阅管理政策。
要验证您的正常运行时间检查配置,请点击测试。 如果结果与您的预期不符,请参阅下面的检查失败部分,更正您的配置,然后重复验证步骤。
点击创建。如果缺少必需数据,则无法成功保存,同时对话框按钮旁边会显示需要数据的字段列表。保存更改后,系统会显示正常运行时间检查已创建 (Uptime check created) 对话框。
API
调用 projects.uptimeCheckConfigs.create
方法。设置该方法的参数,如下所示:
parent:必需。必须是将在其中创建正常运行时间检查的项目的名称。将
PROJECT_ID
替换为您的 Google Cloud 项目 ID。格式为:projects/PROJECT_ID
请求正文必须包含新正常运行时间检查的
UptimeCheckConfig
对象。此页面仅提供几个字段的信息。如需查看有关此对象及其字段的完整文档,请参阅UptimeCheckConfig
:将配置对象的
name
字段留空。系统会在构造响应配置对象时设置此字段。如果要配置 HTTP 或 HTTPS 检查,则必须填充
UptimeCheckConfig
对象的HttpCheck
字段。在此对象中,将requestMethod
字段设置为GET
或POST
。如果省略此字段或将其设置为METHOD_UNSPECIFIED
,则发出GET
请求。如果您要配置
POST
请求,则填写contentType
和body
字段。
create
方法会返回新配置的 UptimeCheckConfig
对象。
如果创建的正常运行时间配置未按照预期方式工作,请参阅本页面中的检查失败部分。
C#
Java
Go
Node.js
PHP
Python
Ruby
正常运行时间检查结果最长可能会延迟 5 分钟才开始流入 Monitoring。在此期间,正常运行时间检查信息中心会将状态报告为“no data available”。
正常运行时间检查的标识符
创建正常运行时间检查后,Monitoring 会为其分配一个称为“正常运行时间检查 ID”的标识符。此标识符可嵌入新正常运行时间检查的资源名称中:
projects/PROJECT_ID/uptimeCheckConfigs/UPTIME_CHECK_ID
您可以调用创建或列出正常运行时间检查的方法,然后从其响应中获取正常运行时间检查 ID。您还可以在配置部分的正常运行时间详情窗口中找到正常运行时间检查 ID。
验证正常运行时间检查
在 Cloud Console 中创建正常运行时间检查时,您可以先测试配置,然后再保存。
检查成功
如果以下两个条件均成立,则正常运行时间检查会成功:
- HTTP 状态为
Success
。 - 响应不包含所需内容,或者在响应中成功搜索到所需内容。
检查失败
以下是导致正常运行时间检查失败的原因:
- 连接错误 - 拒绝 (Connection Error - Refused):如果您使用的是默认的 HTTP 连接类型,请检查您是否安装了响应 HTTP 请求的网络服务器。如果您尚未安装网络服务器,则可能会在新实例上发生这种情况;请参阅 Compute Engine 快速入门。如果您使用的是 HTTPS 连接类型,则可能必须执行其他配置步骤。如需了解防火墙问题,请参阅获取 IP 地址。
- Name or service not found:主机名可能不正确。
- 403 Forbidden:服务向正常运行时间检查工具返回错误代码。例如,在 Amazon Linux 中,默认的 Apache 网络服务器配置会返回此代码;但在其他一些 Linux 版本中,该网络服务器配置会返回代码 200 (Success)。请参阅 Amazon Linux 的 LAMP 教程或您网络服务器的文档。
- 404 Not found:路径可能不正确。
- 408 Request timeout 或无响应:端口号可能不正确、服务可能未运行、服务可能无法访问或者超时值可能太小。检查您的防火墙是否允许来自正常运行服务器的流量;请参阅获取 IP 地址。超时限值通过 Advanced Options 的 Healthcheck 部分指定。
查看正常运行时间检查
要查看正常运行时间检查,请执行以下操作:
控制台
要查看单个正常运行时间检查的详细状态,请执行以下操作:
在 Cloud Console 中,选择 Monitoring:
点击正常运行时间检查。
要查看正常运行时间详情窗口,请找到要查看的正常运行时间检查,然后点击正常运行时间检查名称。
以下屏幕截图显示了名称为“我的正常运行时间检查”(My Uptime Check) 的正常运行时间检查的正常运行时间详细信息:
正常运行时间详情窗口包含以下信息:
- 选定的时间间隔。默认情况下,时间间隔为 1 小时。
- 正常运行时间检查的名称。在示例中,名称为我的正常运行时间检查 (My Uptime Check)。
正常运行时间百分比和平均延迟时间。 正常运行时间百分比值是按照
(S/T)*100
计算出的百分比,其中S
表示检查响应的成功次数,T
是所有位置的检查响应总数。对于群组检查,S
和T
的值分别是所有当前组成员中相应值的总和。例如,在 25 分钟时段内,从所有区域运行一分钟时长的正常运行时间检查会从 6 个位置收到请求,每个位置 25 个,共计 150 个请求。如果信息中心报告的正常运行时间百分比为 83.3%,则表示 150 个请求中有 125 个成功。
已通过检查 (Passed checks) 和正常运行时间检查延迟时间 (Uptime check latency) 窗格会以图形方式显示已通过检查的数量和每项检查的延迟时间随时间变化的情况。
当前状态窗格会显示最近检查的状态。 区域旁边内含对勾的绿色圆圈表示该区域中最近一次检查成功运行;内含 x 的红色圆圈则表示失败。
配置窗格显示正常运行时间检查的配置。 此数据是在创建正常运行时间检查时分配的。 检查 Id 值对应于 API 调用中的
UPTIME_CHECK_ID
值。提醒政策窗格列出了关联的提醒政策的相关信息。 在示例信息中心中,已配置一个提醒政策。
C#
Java
Go
Node.js
PHP
Python
Ruby
修改正常运行时间检查
无法更改正常运行时间检查协议、资源类型以及受监控的资源。如果要修改这些字段,必须使用正确的配置创建正常运行时间检查。但是,正常运行时间检查中的所有其他字段都可以在创建检查后进行修改。
要修改与正常运行时间检查关联的提醒政策,请在 Monitoring 导航窗格中点击notifications 提醒,选择要修改的政策,然后点击修改。
要修改正常运行时间检查,请执行以下操作:
控制台
在 Cloud Console 中,选择 Monitoring:
点击正常运行时间检查。
找到要修改的正常运行时间检查,然后执行以下任一操作:
- 点击更多 more_vert 并选择修改。
- 查看正常运行时间检查详情,然后点击修改。
根据需要更改字段的值。您无法修改所有字段。如果检查的自定义标头值处于隐藏状态,您就无法显示这些值。
要验证检查是否有效,请点击测试。如果测试失败,请参阅检查失败以了解可能的原因。
点击保存。
API
调用 projects.uptimeCheckConfigs.patch
方法。为该方法设置参数,如下所示:
uptimeCheckConfig.name:必需。这是 REST 网址的一部分,是待修改正常运行时间检查的资源名称:
projects/PROJECT_ID/uptimeCheckConfigs/UPTIME_CHECK_ID
您可以从
create
或list
方法的响应中获取 UPTIME_CHECK_ID。该 ID 不会显示在 Cloud Console 中。updateMask:可选。这是一个查询参数:
?updateMask=[FIELD_LIST]
。[FIELD_LIST]
是UptimeCheckConfig
对象中应更改的字段的英文逗号分隔列表。例如:"resource.type,httpCheck.path"
请求正文必须包含带有新字段值的
UptimeCheckConfig
。
如果设置了 updateMask
,则只有 updateMask
中列出的字段会替换现有配置中的相应字段。如果一个字段具有子字段,并且该字段已在字段掩码中列出但其子字段均未列出,则该字段的所有子字段都将替换相应的字段。
如果未设置 updateMask
,则请求正文中的配置将替换整个现有配置。
patch
方法会返回已更改配置的 UptimeCheckConfig
对象。
C#
Java
Go
Node.js
PHP
Python
Ruby
新的正常运行时间检查结果最长可能会延迟 5 分钟显示。在此期间,之前的正常运行时间检查的结果会显示在信息中心内并应用于提醒政策中。
删除正常运行时间检查
如果您尝试使用 Cloud Console 删除正常运行时间检查,但存在依赖于正常运行时间检查的提醒政策,则删除操作将失败。从使用该检查的所有提醒政策中移除正常运行时间检查后,重试删除。
如果您尝试使用 Cloud Monitoring API 删除正常运行时间检查,则即使存在依赖于该检查的提醒政策,系统也会删除正常运行时间检查。不生成任何错误。不会针对缺失检查创建任何突发事件。在删除正常运行时间检查之前,确保没有依赖于此检查的提醒政策。
要删除正常运行时间检查,请执行以下操作:
控制台
在 Cloud Console 中,选择 Monitoring:
点击正常运行时间检查。
找到要修改的正常运行时间检查,然后执行以下任一操作:
- 点击更多 more_vert 并选择删除。
- 查看正常运行时间检查详情,然后点击删除 delete
API
调用 projects.uptimeCheckConfigs.delete
方法。填写参数,如下所示:
name:必需。这是待删除正常运行时间检查配置的资源名称:
projects/PROJECT_ID/uptimeCheckConfigs/UPTIME_CHECK_ID
您可以从
create
或list
方法的响应中获取 UPTIME_CHECK_ID。该 ID 不会显示在 Cloud Console 中。
C#
Java
Go
Node.js
PHP
Python
Ruby
后续步骤
- 要查看正常运行时间检查的价格和限制,请参阅价格和限制。
- 要查看所有正常运行时间检查的列表,请参阅查看正常运行时间检查。
- 要获取可能用于执行正常运行时间检查的 IP 地址列表,请参阅获取 IP 地址。
- 要使用 API 确定正常运行时间检查的状态,请监控指标
monitoring.googleapis.com/uptime_check/check_passed
。请参阅 Google Cloud 指标列表,了解详细信息。