IBM Cloud Docs
为磁盘利用率设置磁盘警报

为磁盘利用率设置磁盘警报

目标

及时获取有关资源利用情况的警报是管理数据库、避免问题和减少停机时间的关键。 如果事先知道数据库磁盘即将耗尽,请采取措施缩减这些资源。

在本教程中,您将使用IBM CloudAPI 和 IBM Cloud CLI设置警报,只要数据库的磁盘利用率超过 90%,就会向您发送电子邮件。 此示例针对Databases for Elasticsearch部署创建警报,但适用于IBM Cloud Databases目录中的所有数据库。

提高生产力

设置监控实例和平台指标

要开始使用,您需要访问数据库区域中的 IBM Cloud® Monitoring,并且需要有一个可用的 监控实例。 该监控实例必须与数据库目标位于同一区域。

您还必须启用 Platform Metrics

安装命令行界面工具

接下来,您需要使用 IBM Cloud监控 CLICloud DatabasesCLI 插件

通过运行命令安装IBM Cloud监控 CLI。运行以下命令安装 {{{ite.data.keyword.cloud_notm}} 监控 CLI:

ibmcloud plugin install monitoring

运行以下命令安装Cloud DatabasesCLI 插件:

ibmcloud plugin install cloud-databases

现在您可以检索和监控服务实例了。

读取监控服务实例

在此步骤中,您将获取访问监控实例所需的凭证。

首先登录IBM CloudCLI。使用以下命令登录 CLI:

ibmcloud login -sso

按照屏幕上的说明登录。

接下来,为您的实例选择合适的 区域

ibmcloud target -r <REGION>

然后,使用以下命令列出该区域中的现有监控实例:

ibmcloud monitoring service-instances

注意已启用“平台度量”的服务实例名称。

现在使用类似命令为应用程序编程接口创建一个授权令牌:

以下步骤仅适用于 Bash。

AUTH_TOKEN=$(ibmcloud iam oauth-tokens | awk '{print $4}')

现在,您可以使用以下命令为 API 获取监控服务实例的 ID:

GUID=$(ibmcloud resource service-instance <instance_name_from_step_above> --output json | jq -r '.[].guid')

设置通知通道

配置一个 通知通道,以便在触发警报时收到通知。 要设置通知通道,请使用以下命令:

curl -X POST https://<region>.monitoring.cloud.ibm.com/api/notificationChannels -H "Authorization: Bearer $AUTH_TOKEN" -H "IBMInstanceID: $GUID" -H "content-type: application/json"  --data-raw '{"notificationChannel":{"id":null,"version":null,"teamId":"","name":"<notification_channel>","type":"EMAIL","enabled":true,"sendTestNotification":true,"options":{"notifyOnOk":true,"notifyOnResolve":true,"emailRecipients":["email@email.com"]}}}'

您将看到以下输出:

{"notificationChannel":{"id":39209,"version":1,"customerId":34292,"enabled":true,"sendTestNotification":true,"createdOn":1678967870764,"modifiedOn":1678967870764,"name":"thursTest","options":{"notifyOnOk":true,"emailRecipients":["email@email.com"],"notifyOnResolve":true},"type":"EMAIL"}}% 

现在您已为您的警报创建了一个通知通道。

记下 API 调用返回的 id 字段。

创建警报

现在有了通知通道,请创建 警报规则。 警报规则描述了要监控的指标查询、阈值以及超过阈值时要采取的措施。 在这种情况下,您需要监控 ibm_service_instance_name,以确保 max 的使用率不超过 90%。 如果发生这种情况,就会触发警报并通知您。

磁盘利用率达到 90% 时会触发该警报。 不过,磁盘利用率最好达到 50-70%。

要检索要设置警报的数据库实例名称,请使用类似命令列出所有数据库实例:

ibmcloud cdb ls

确保选择与监控实例位于同一区域的数据库。

你会看到如下输出

Retrieving instances for all database types in all resource groups in all locations under IBM as …
OK
Name                          Location   State
Databases for PostgreSQL-76   us-south   inactive
testelastic                   eu-gb      active
Databases for MySQL-9j        us-south   active

现在,使用数据库名称,使用类似命令创建警报:

curl --request POST \
  --url https://<region>.monitoring.cloud.ibm.com/api/alerts \
  --header "Authorization: Bearer  $AUTH_TOKEN" \
  --header 'Content-Type: application/json' \
  --header "IBMInstanceID: $GUID" \
  --data-raw  '{
	"alert":
		{
			"type": "MANUAL",
			"name": "Disk Alert",
			"description": "",
			"enabled": true,
			"severity": 1,
			"timespan": 60000000,
			"notificationChannelIds": [
				<id_from_previous_step>
			],
			"filter": "ibm_service_instance_name in (\"<db_instance_name_from_previous_step>\")",
		  "condition": "max(max(ibm_databases_for_elasticsearch_disk_used_percent)) > 0.9"
		}
}'

该命令会获取任何可用成员的最大磁盘利用率,与成员数无关。

检查警报是否已创建

当磁盘容量达到 90% 时,就会发出警报。 您会通过在通知渠道中创建的同一电子邮件收到警报。 您还可以使用以下命令检查当前激活的警报:

ibmcloud monitoring alert list --name <monitoring instance name>

现在,只要Databases for Elasticsearch实例磁盘利用率超过 90%,就会收到警报,以便在磁盘过满之前采取行动。

后续步骤

要修改警报或了解有关监控的更多信息,请参阅 开始使用{{site{{site.data.keyword.mon_full_notm}}

缩放资源

如果收到磁盘使用率超过 90% 的警报,请调整磁盘使用率,使其不超过 50-70%。 手动管理服务资源或自动扩展。

缩放资源
服务 管理资源 自动缩放
Databases for EnterpriseDB 扩展磁盘、内存和 CPU 自动缩放
Databases for etcd 扩展磁盘、内存和 CPU 自动缩放
Databases for MongoDB 扩展磁盘、内存和 CPU 自动缩放
Databases for PostgreSQL 扩展磁盘、内存和 CPU 自动缩放
Databases for Redis 扩展磁盘、内存和 CPU 自动缩放
Databases for MySQL 扩展磁盘、内存和 CPU 自动缩放
Messages for RabbitMQ 扩展磁盘、内存和 CPU 自动缩放

Cloud Databases服务指标

本教程使用IBM Cloud® Databases for Elasticsearch。 不过,同样的流程也适用于其他Cloud Databases服务: