【问题标题】:GCP alert if Docker container exits如果 Docker 容器退出,GCP 会发出警报
【发布时间】:2022-01-17 14:02:21
【问题描述】:

我们正在使用 Google Cloud Platform 及其服务 Compute Engine。我们在我们的一个虚拟机实例(它是 Compute Engine 的一部分)上安装了 Docker。我们可以在 GCP Monitoring 中设置一个警报以在容器退出时触发吗?

【问题讨论】:

标签: docker google-cloud-platform docker-swarm google-cloud-monitoring


【解决方案1】:

是的。您必须使用云日志记录驱动程序配置 docker,创建基于日志的指标和针对该指标的警报策略。

解决方案:

使用云日志记录驱动程序配置 docker。

  • SSH 到您的实例。

  • 以 root 身份运行此命令:dockerd --log-driver=gcplogs。这会将您的 docker 日志转发到 Google Cloud Logging。

  • 如果运行容器优化的操作系统,请按照以下步骤操作:

    echo '{"log-driver":"gcplogs"}' | sudo tee /etc/docker/daemon.json

    sudo systemctl restart docker

  • 尝试启动和退出容器。

这些是我们退出容器时生成的日志。请记住两个退出消息

创建基于日志的指标

  • 转到日志记录 -> 选择基于日志的指标。

  • 点击创建指标。

  • 指标类型:计数器。在 Details 中,输入 Log Metric 名称(例如 mysite-container-exited)

  • 在过滤器选择->构建过滤器下,复制以下代码

    resource.type="gce_instance"

    log_name="projects/myproject-12345/logs/gcplogs-docker-driver"myproject-12345 替换为您的项目名称。

    jsonPayload.container.name="/mysite"mysite 更改为您的容器名称。

    jsonPayload.message=~"exit$" 这是匹配 exit 作为一行中最后一个单词的正则表达式。

它应该看起来像这样。

创建提醒政策

  • 转到监控 -> 选择警报。
  • 点击创建策略。
  • 单击选择指标并搜索您的指标名称(例如 mysite-container-exited)。
  • 选择您的指标并单击应用。
  • 将滚动窗口设置为 2 分钟,将滚动窗口功能设置为 count。点击下一步。
  • 将警报触发器设置为任何违反时间序列,将阈值位置设置为高于阈值,将阈值设置为1。点击下一步。
  • 选择一个通知频道来发送警报。如果不存在,请点击管理通知渠道并创建一个。
  • 最简单的方法是为通知渠道添加电子邮件。
  • 创建返回后,单击通知通道中的刷新图标并选择它。点击确定。
  • 点击保存策略。

正如我们所见,每当我们退出容器时,每个容器都会向日志发出两个退出命令,这就是阈值设置为高于 1 的原因

您可以通过创建新指标并将jsonPayload.container.name="/mysite" 的值更改为您的容器名称来监控更多容器。

现在尝试启动和停止容器。您将在 2-3 分钟内收到电子邮件提醒。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-09
    • 1970-01-01
    • 1970-01-01
    • 2018-09-03
    • 2021-07-26
    • 2015-04-30
    • 2021-11-25
    • 2021-02-20
    相关资源
    最近更新 更多