来自 textPayload 的 stackdriver 中的日志解析警报?

Log parsing alert in stackdriver from textPayload?

我有点受困于 stackdriver 中的警报。我的目标是从 MySQL 错误的解析日志中发出警报。我有 textPayload: "2020-06-24T17:25:05.766410Z 332837 [ERROR] /usr/sbin/mysqld: Out of memory (Needed 1073741816 bytes)" 条消息,当我有 5 条这样的消息时,我需要提醒。但是我坚持使用公制,当我尝试创建和设置时,我遇到了 reg exp 错误。也许我需要其他方式来配置它?

转到query editor and try:

resource.type="gce_instance"
textPayload.message=~"/usr/sbin/mysqld: Out of memory"

这将匹配所有日志条目,然后您可以创建一个基于日志的指标,count a log entries and then an alert 您想要(如下图所示);

创建 alerting policy 时,确保字段 agregator 设置为 sum 并且 period 设置为您需要的任何时间段。如果将它设置为 10 分钟,如果只有 4 个错误,则不会触发警报。记住这一点。除非它们是在很短的时间内生成的,但这是针对您的情况的。

配置部分在我的例子中应该是这样的:

在其他页面上 select 警报频道等(非常清楚)并保存警报。

完成后,您的警报应如下所示(我专门为此示例创建了一个指标和警报):

我故意触发了一个警报,并在事件发生大约 2 分钟后(这是典型情况)收到了一封电子邮件。