設定磁碟利用率的磁碟警報
目標
及時獲取有關資源利用率的警報是管理資料庫、避免問題和減少停機時間的關鍵。 如果您事先知道資料庫的磁碟空間不足,請採取措施擴展這些資源。
在本教學中,您將使用IBM Cloud API 和 IBM Cloud CLI來設定警報,每當資料庫的磁碟使用率超過90 時,該警報就會向您發送電子郵件%。 此特定範例在Databases for Elasticsearch部署上建立警報,但它適用於IBM Cloud Databases目錄中的所有資料庫。
提高生產力
設定監控實例和平台指標
首先,您需要存取資料庫區域中的 IBM Cloud® Monitoring,並且需要有一個可用的 監控實例。 此監控實例必須與資料庫目標位於同一區域。
您還必須啟用 平台指標。
安裝命令列介面工具
接下來,您需要 IBM Cloud監控 CLI和 Cloud Databases CLI 外掛程式。
透過執行以下指令安裝IBM Cloud監控 CLI:
ibmcloud plugin install monitoring
執行以下指令安裝 CLI Cloud Databases 外掛程式:
ibmcloud plugin install cloud-databases
您現在已準備好檢索和監視您的服務實例。
檢索您的監控服務實例
在此步驟中,您將檢索必要的憑證以存取監控實例。
首先使用以下指令登入IBM Cloud CLI:
ibmcloud login -sso
請依照螢幕上的指示登入。
接下來,為您的實例定位適當的 區域:
ibmcloud target -r <REGION>
然後,使用以下命令列出該區域中現有的監控實例:
ibmcloud monitoring service-instances
請注意啟用了「平台指標」的服務實例名稱。
現在,使用以下命令為 API 建立授權令牌:
以下步驟僅適用於 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%,您就會收到警報,以便您可以在磁碟太滿之前採取行動。
下一步
要修改您的警報或了解有關監控的更多信息,請 參閱IBM Cloud Monitoring入門。
調整資源的大小
如果您收到磁碟利用率超過 90% 的警報,請擴充磁碟以使利用率不超過 50-70%。 手動管理服務的資源或自動縮放。
| 服務 | 管理資源 | 自動調整 |
|---|---|---|
| IBM Cloud® Databases for MongoDB | 擴充磁碟、RAM 和 CPU | 自動調整 |
| IBM Cloud® Databases for PostgreSQL | 擴充磁碟、RAM 和 CPU | 自動調整 |
| IBM Cloud® Databases for Redis | 擴充磁碟、RAM 和 CPU | 自動調整 |
| IBM Cloud® Databases for MySQL | 擴充磁碟、RAM 和 CPU | 自動調整 |
| IBM Cloud® Messages for RabbitMQ | 擴充磁碟、RAM 和 CPU | 自動調整 |
Cloud Databases服務指標
本教學使用IBM Cloud® Databases for Elasticsearch。 但是,相同的流程適用於其他Cloud Databases服務: