为磁盘利用率设置磁盘警报
目标
及时获取有关资源利用情况的警报是管理数据库、避免问题和减少停机时间的关键。 如果事先知道数据库磁盘即将耗尽,请采取措施缩减这些资源。
在本教程中,您将使用IBM CloudAPI 和 IBM Cloud CLI设置警报,只要数据库的磁盘利用率超过 90%,就会向您发送电子邮件。 此示例针对Databases for Elasticsearch部署创建警报,但适用于IBM Cloud Databases目录中的所有数据库。
提高生产力
设置监控实例和平台指标
要开始使用,您需要访问数据库区域中的 IBM Cloud® Monitoring,并且需要有一个可用的 监控实例。 该监控实例必须与数据库目标位于同一区域。
您还必须启用 Platform Metrics。
安装命令行界面工具
接下来,您需要使用 IBM Cloud监控 CLI和 Cloud 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服务: