ディスク使用率に関するディスクアラートの設定

目標

リソースの使用状況に関するタイムリーなアラートを受け取ることは、データベースを管理し、問題を回避し、ダウンタイムを軽減するための鍵となります。 データベースがディスク不足に陥ることが事前に分かっている場合は、リソースを拡張するための措置を講じてください。

このチュートリアルでは、IBM CloudAPI と IBM Cloud CLIを使用して、データベースのディスク使用率が 90% を超えるたびに電子メールを送信するアラートを設定します。 この具体的な例は、Databases for Elasticsearchデプロイメントでアラートを作成しますが、IBM Cloud Databasesカタログ内のすべてのデータベースに適用できます。

生産性の向上

モニタリング・インスタンスとプラットフォーム・メトリクスの設定

開始するには、データベース・リージョンの IBM Cloud® Monitoring にアクセスし、監視インスタンス を利用できるようにする必要があります。 このモニタリング・インスタンスは、データベース・ターゲットと同じリージョンになければなりません。

また、Platform Metrics を有効にしておく必要がある。

コマンドライン・インターフェイス・ツールのインストール

次に、IBM Cloud Monitoring CLICloud Databases CLI plug-in が必要だ。

以下のコマンドを実行して、IBM Cloud Monitoring 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

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%を超えないようにディスクをスケールしてください。 サービスのリソースを手動で管理するか、オートスケールする。

リソースのスケーリング
サービス リソースの管理 自動スケーリング
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サービスにも適用されます: