每当有不健康的目标时就获得 TCP LB 的警报?

Getting alerts for a TCP LB whenever there's an unhealthy target?

我目前正在使用具有 3 个目标虚拟机的非托管 TCP 负载均衡器,并且为了提供快速响应,只要健康数量不是 3 个虚拟机中的 3 个,我就需要一个警报系统

有没有办法在 GCP 中通过电子邮件、slack 或 pagerduty 获取有关此问题的警报?

可以创建这样的警报,当您的组中的一个实例停止正常工作时,它会提醒您。

转到您的非托管实例组详细信息页面并将选项卡切换到“监控”:

单击创建警报策略,您将看到另一个面板:

在此屏幕底部,将条件更改为低于,将阈值更改为3如下图

您会发现自己位于策略创建页面:

单击下一步和select所需的通知渠道,如果您没有看到任何可用的单击Manage notification channels并创建一个您想要的,它可以是电子邮件、短信、Slack 和许多其他。




另一种方法是创建由日志触发的警报。

首先您需要创建健康检查(和 enable logging)。然后你去你的负载平衡器设置并编辑你的后端服务,在那里你 select 你创建的健康检查。

然后转到 Logs explorer and select as a log resource your instance group. You will see in the query editor 这样的事情:

resource.type="gce_instance_group" resource.labels.instance_group_id="3863333883516335882" resource.labels.instance_group_name="hc-group-1"

然后在底部添加这一行:jsonPayload.healthCheckProbeResult.healthState="UNHEALTHY"

然后单击“运行 查询”,这应该会产生一些日志,其中包含可用于触发警报的日志。

现在,当您看到日志时,单击“操作”和select“创建日志警报”:

您将看到 window 允许您命名警报和 select 发送通知的适当渠道。我刚刚以电子邮件的形式测试了它(一组 2 个虚拟机,在关闭其中一个后触发了警报):

最后 - 根据您使用的服务 运行,您可以监控许多不同的服务(在我的例子中是端口 80 上的 HTTP 回复)。