ディスク使用率に関するディスクアラートの設定
目標
リソースの使用状況に関するタイムリーなアラートを受け取ることは、データベースを管理し、問題を回避し、ダウンタイムを軽減するための鍵となります。 データベースがディスク不足に陥ることが事前に分かっている場合は、リソースを拡張するための措置を講じてください。
このチュートリアルでは、IBM CloudAPI と IBM Cloud CLIを使用して、データベースのディスク使用率が 90% を超えるたびに電子メールを送信するアラートを設定します。 この具体的な例は、Databases for Elasticsearchデプロイメントでアラートを作成しますが、IBM Cloud Databasesカタログ内のすべてのデータベースに適用できます。
生産性の向上
モニタリング・インスタンスとプラットフォーム・メトリクスの設定
開始するには、データベース・リージョンの IBM Cloud® Monitoring にアクセスし、監視インスタンス を利用できるようにする必要があります。 このモニタリング・インスタンスは、データベース・ターゲットと同じリージョンになければなりません。
また、Platform Metrics を有効にしておく必要がある。
コマンドライン・インターフェイス・ツールのインストール
次に、IBM Cloud Monitoring CLIと Cloud Databases CLI plug-in が必要だ。
以下のコマンドを実行して、IBM Cloud Monitoring CLI をインストールします。
ibmcloud plugin install monitoring
以下のコマンドを実行してCloud DatabasesCLIプラグインをインストールします。以下のコマンドを実行してCLIプラグインをインストールする:
ibmcloud plugin install cloud-databases
これでサービスインスタンスの取得と監視の準備が整いました。
モニタリングサービスのインスタンスを取得する
このステップでは、モニタリング・インスタンスにアクセスするために必要な認証情報を取得します。
IBM Cloudにログインします。以下のコマンドでCLIにログインする:
ibmcloud login -sso
画面の指示に従ってログインしてください。
次に、インスタンスの適切な リージョン をターゲットにする:
ibmcloud target -r <REGION>
次に、そのリージョンにある既存のモニタリング・インスタンスを以下のコマンドでリストアップする:
ibmcloud monitoring service-instances
Platform Metrics」が有効になっているサービス・インスタンス名に注意。
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
アラートの作成
通知チャネルができたので、アラートルールを作成します。 アラートルールには、監視するメトリッククエリ、しきい値、およびしきい値を超えたときに取るアクションを記述します。 この場合、使用率が90 max
を超えないように監視していることになる
ibm_service_instance_name
その場合、アラートが作動し、あなたに通知されます。
このアラートは、ディスク使用率が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%に達するたびにアラートが表示されます。 通知チャネルで作成したのと同じEメールにアラートが届きます。 また、以下のコマンドを使って、現在アクティブなアラートをチェックすることもできる:
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 | ディスク、RAM、CPU のスケーリング | 自動スケーリング |
Databases for etcd | ディスク、RAM、CPU のスケーリング | 自動スケーリング |
Databases for MongoDB | ディスク、RAM、CPU のスケーリング | 自動スケーリング |
Databases for PostgreSQL | ディスク、RAM、CPU のスケーリング | 自動スケーリング |
Databases for Redis | ディスク、RAM、CPU のスケーリング | 自動スケーリング |
Databases for MySQL | ディスク、RAM、CPU のスケーリング | 自動スケーリング |
Messages for RabbitMQ | ディスク、RAM、CPU のスケーリング | 自動スケーリング |
Cloud Databasesサービス・メトリクス
このチュートリアルではIBM Cloud® Databases for Elasticsearchを使用します。 しかし、同じプロセスが他のCloud Databasesサービスにも適用されます: