繁体   English   中英

Google Cloud Platform:如何监控 memory VM 实例的使用情况

[英]Google Cloud Platform: how to monitor memory usage of VM instances

我最近执行了到 Google Cloud Platform 的迁移,我非常喜欢它。

但是我找不到一种方法来监视 Dataproc VM 实例的 memory 使用情况。 正如您在附件中看到的,控制台提供了有关 CPU、磁盘和.network 的利用率信息,但没有提供有关 memory 的信息。

在不知道 memory 被使用了多少的情况下,如何理解是否需要额外的 memory?

在此处输入图像描述

通过在 GCE 虚拟机中安装Stackdriver 代理,可以监控内存等其他指标 Stackdriver 还为您提供警报和通知功能。 尽管如此,代理指标仅适用于高级帐户

Stackdriver 代理目前仅支持监控 E2 系列的 RAM。 不支持其他实例类型,例如 N1、N2、...。

查看支持的最新文档; https://cloud.google.com/monitoring/api/metrics_gcp#gcp-compute

堆栈驱动程序

那么您可以使用 /proc/meminfo 虚拟文件系统来获取有关当前内存使用情况的信息。 您可以创建一个简单的 bash 脚本,从 /proc/meminfo 读取内存使用信息。 该脚本可以作为 cron 作业服务定期运行。 如果内存使用量超过给定阈值,脚本可以发送警报电子邮件。

请参阅此链接: https : //pakjiddat.netlify.app/posts/monitoring-cpu-and-memory-usage-on-linux

最新的答案在这里。

如何查看 GCP 中的内存使用情况?

  1. 在您的虚拟机上安装代理。 耗时不到 5 分钟。
curl -sSO https://dl.google.com/cloudagents/add-monitoring-agent-repo.sh
sudo bash add-monitoring-agent-repo.sh
sudo apt-get update
sudo apt-get install stackdriver-agent

代码片段应安装最新版本的代理,但有关最新指南,您始终可以参考https://cloud.google.com/monitoring/agent/installation#joint-install

  1. 安装后,在一两分钟内,您应该会在 GCP 的监控部分看到其他指标。 https://console.cloud.google.com/monitoring

在 GCP 中搜索内存指标的位置

解释以及为什么默认情况下它是不可见的?

可以在不同位置收集指标(例如 CPU 使用率或内存使用率)。 例如,CPU 使用率是主机(带有运行虚拟机的特殊软件的机器)可以收集的一条信息。 内存使用和虚拟机的问题是,它是管理它的底层操作系统(虚拟机的操作系统)。 主机无法真正知道使用了多少,因为它在分配给该虚拟机的内存中只能看到一个字节流。

这就是为什么有一个想法在该虚拟机内安装代理从内部收集指标并将其发送到可以解释的地方。 有许多类型的代理可用,但 Google 推广了它们自己的代理——监控代理——并且它很好地集成到整个 GCP 套件中。

代理指标页面可能有用: https : //cloud.google.com/monitoring/api/metrics_agent

您需要安装堆栈驱动程序。 请参阅: https : //app.google.stackdriver.com/? project = “您的项目名称”

Stackdriver 指标页面将提供一些指导。 您需要更改“项目名称”(例如sinuous-dog-133823 )以适合您的帐户:

https://app.google.stackdriver.com/metrics-explorer?project=sinuous-dog-133823&timeSelection={"timeRange":"6h"}&xyChart={"dataSets":[{"timeSeriesFilter":{"filter" :"metric.type=\\"agent.googleapis.com/memory/bytes_used\\" resource.type=\\"gce_instance\\"","perSeriesAligner":"ALIGN_MEAN","crossSeriesReducer":"REDUCE_NONE","secondaryCrossSeriesReducer": "REDUCE_NONE","minAlignmentPeriod":"60s","groupByFields":[],"unitOverride":"By"},"targetAxis":"Y1","plotType":"LINE"}],"options": {"mode":"COLOR"},"constantLines":[],"timeshiftDuration":"0s","y1Axis":{"label":"y1Axis","scale":"LINEAR"}}&isAutoRefresh=true

此 REST 调用将为您提供 CPU 使用率。 您将需要修改参数以适应您的项目名称(例如sinuous-dog-133823 )和其他参数以满足需要。

GET /v3/projects/sinuous-cat-233823/timeSeries?filter=metric.type="agent.googleapis.com/memory/bytes_used" resource.type="gce_instance"& aggregation.crossSeriesReducer=REDUCE_NONE& aggregation.alignmentPeriod=+60s& aggregation.perSeriesAligner=ALIGN_MEAN& secondaryAggregation.crossSeriesReducer=REDUCE_NONE& interval.startTime=2019-03-06T20:40:00Z& interval.endTime=2019-03-07T02:51:00Z& $unique=gc673 HTTP/1.1
Host: content-monitoring.googleapis.com
authorization: Bearer <your token>
cache-control: no-cache
Postman-Token: 039cabab-356e-4ee4-99c4-d9f4685a7bb2

默认情况下 VM 内存指标不可用,它需要 Cloud Monitoring Agent 1

您显示的 UI 是 Dataproc,它已经安装了代理,但默认情况下处于禁用状态,您不必重新安装它。 要为 Dataproc 集群启用 Cloud Monitoring Agent,请在创建集群时设置--properties dataproc:dataproc.monitoring.stackdriver.enable=true 2 然后,您可以在 Cloud Monitoring UI(尚未与 Dataproc UI 集成)中监控 VM 内存并创建警报。

本文现已过时,因为 Stackdriver 现在是遗留代理。 这已被 Ops Agent 取代。 请阅读 GCP 上有关迁移到 Ops Agent 的最新文章

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM