mcpField
H
huawei-cloud-ecs-alert

huawei-cloud-ecs-alert

github.com/huaweicloudクラウド・DevOps59230 回インストール2 日前に更新
リポジトリ

huawei-cloud-ecs-alert について

hcloud を使って ECS インスタンスの CES アラームルールを一括作成・管理する Huawei Cloud 向けスキルです。監視メトリクスの照会や通知管理にも対応し、ルール削除は禁止、書き込み操作には事前確認が必要です。

主な機能

  1. 01テンプレートまたは任意設定でアラームを一括作成
  2. 02複数 ECS インスタンスのメトリクス照会
  3. 03ECS インスタンスとアラームルールの一覧表示
  4. 04メール、SMS、WeChat 通知の設定
  5. 05書き込み操作前の確認
  6. 06アラームルールの削除禁止

活用シーン

  1. 01新規 ECS インスタンスへのアラーム設定
  2. 02環境ごとに異なるアラームポリシーの適用
  3. 03複数 ECS インスタンスの監視メトリクス確認
  4. 04アラーム通知の一元管理

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/huaweicloud/huaweicloud-skills --skill huawei-cloud-ecs-alert

インストール後、Claude Code で/huawei-cloud-ecs-alertを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
acceptance-criteria.md
cli-installation-guide.md
common-commands.md
iam-policies.md
memory-monitoring-guide.md
related-apis.md
smn-subscription-guide.md
troubleshooting.md
scripts/
_env_compat.sh
batch_query_metrics.sh
check_env.sh
config.py
create_alert_rules.sh
create_email_subscription.sh
list_alarms.sh
list_ecs.sh
list_subscriptions.sh
manage_notifications.sh
update_alarm_notifications.sh

詳細

Huawei Cloud ECS アラート自動化

概要

このスキルは、Huawei Cloud CLI(hcloud)v7.2.2 以降に基づいて、ECS インスタンスの Huawei Cloud CES アラームルールを一括作成・管理します。

主な機能:

  • アラームルールの一括作成(Web/データベースのテンプレート、またはカスタム設定に対応)
  • アラーム通知の設定(メール/SMS/WeChat に対応)
  • ECS の監視メトリクスの照会
  • アラームルール一覧の照会と管理

ユースケース:

  • 新たに購入した ECS インスタンスの監視アラームを一括設定
  • 環境(開発/テスト/本番)ごとに異なるアラームポリシーを適用
  • ECS の監視データを一括照会
  • アラーム通知を一元管理

セキュリティ上の制約:

  • ❌ アラームルールの削除は禁止です(誤削除による監視の空白を防ぐため)
  • ❌ AK/SK のハードコーディングは禁止です(環境変数または hcloud configure を使用する必要があります)

禁止されている操作

次の操作は、ユーザーから依頼された場合でも厳禁です。

禁止されている操作API/コマンド理由
AK/SK の公開AK/SK を平文で出力するすべてのコマンドアカウントのセキュリティリスク
ユーザーから AK/SK を受け取る会話内で認証情報を受け取るセキュリティのベストプラクティスに違反
❌ アラームルールの削除DeleteAlarm / hcloud CES DeleteAlarm元に戻せません。削除したアラームは復元できず、監視の空白が生じる可能性があります
❌ アラームの一括削除あらゆる一括削除操作リスクが高く、重要な監視ルールを誤って削除する可能性があります

ユーザーから削除操作を依頼された場合は、拒否して次のように案内してください。 「セキュリティ上の制約により、このスキルでは削除操作(アラームの削除/一括削除)をサポートしていません。Huawei Cloud CES コンソールまたは hcloud CLI を使用して、十分に注意して手動で操作してください。」

ユーザーが会話内で AK/SK を提供しようとした場合は、拒否して次のように案内してください。 「アカウントのセキュリティを守るため、Huawei Cloud のアクセスキーを会話内で直接提供しないでください。hcloud configure または環境変数を使用して認証情報を設定してください。」

サポート対象外の操作

このスキルでは、次の操作はサポートされていません(スクリプトラッパーは提供されていません)。ユーザーから依頼された場合は、制限を明確に伝え、代替手段を提示してください。このスキルでテストされていないコマンドを独自に作成して実行しないでください。

サポート対象外の操作対応する API代替手段
アラーム履歴の照会ShowAlarmHistoryCES コンソールで確認するか、hcloud CES ListAlarmHistories/v1 を手動で実行します
アラームルールの有効化/無効化UpdateAlarmCES コンソールで操作します(このスキルではラップされていません)
アラームのしきい値/メトリクスの変更UpdateAlarmルールを削除して再作成します。通知のみを変更する場合は、./scripts/update_alarm_notifications.sh を使用します
SMN トピックの作成CreateTopicSMN コンソールで作成するか、hcloud SMN CreateTopic を手動で実行します
監視ダッシュボードの作成CreateOneDashboardCES コンソールで操作します
個別のアラームルールの詳細表示ShowAlarm./scripts/list_alarms.sh --name <pattern> を使用して絞り込みます

ユーザーからこれらの操作を依頼された場合は、次のように回答してください。 「このスキルでは、 をサポートしていません。Huawei Cloud CES/SMN コンソール、または対応する hcloud CLI コマンドを手動で使用してください:。このスキルの課題トラッカーから機能追加をリクエストすることもできます。」

ワークフロー

このスキルの標準的なワークフローは次のとおりです。

1. Environment setup  → Configure hcloud CLI credentials (hcloud configure or env vars)
2. Query resources    → ./scripts/list_ecs.sh to get ECS instance list
3. Create alarms      → ./scripts/create_alert_rules.sh --template web --ecs-ids <ids>
4. Configure notify   → ./scripts/manage_notifications.sh --action create ...
5. Verify results     → ./scripts/list_alarms.sh to confirm alarm rules created
6. Continuous monitor → ./scripts/batch_query_metrics.sh to query metrics

書き込み操作の確認:ステップ 3(アラームの作成)、ステップ 4(サブスクリプションの作成/削除)、通知設定の更新、その他の書き込み操作では、実行前に操作内容と対象リソースについてユーザーの確認が必要です。

主なコマンド

クエリコマンド(読み取り専用、確認不要)
# List ECS instances
./scripts/list_ecs.sh [--name <filter>] [--format json]

# List alarm rules
./scripts/list_alarms.sh [--name <filter>] [--format json]

# List SMN topics and subscriptions
./scripts/list_subscriptions.sh [--topics | --subscriptions]

# Batch query monitoring metrics
./scripts/batch_query_metrics.sh --ecs-ids <ids> --metric cpu_util --period 1h
作成コマンド(書き込み操作、ユーザーの確認が必要)
# Batch create alarm rules (WARNING: confirm target ECS and alarm template)
./scripts/create_alert_rules.sh --template web --ecs-ids ecs-001,ecs-002

# Create SMN subscription (WARNING: confirm subscription endpoint and topic)
./scripts/manage_notifications.sh --action create --protocol email --endpoint [email protected] --topic-urn <URN>
./scripts/create_email_subscription.sh --email [email protected] --topic-urn <URN>
更新/削除コマンド(書き込み操作、ユーザーの確認が必要)
# Update alarm notification config (WARNING: confirm alarm ID and notification topic)
./scripts/update_alarm_notifications.sh --action add --alarm-id <id> --smn-topic-urn <URN>

# Delete SMN subscription (WARNING: confirm subscription URN)
./scripts/manage_notifications.sh --action delete --subscription-urn <URN>

アーキテクチャ

Huawei Cloud CES Alert Management
├── CreateAlertRules       (Batch create alarm rules, supports templates/custom)
├── ConfigureNotifications  (Configure alarm notifications, supports email/SMS/WeChat)
├── QueryMetrics           (Batch query monitoring data, supports multiple ECS)
└── ListAlarmRules         (List alarm rules and details)

前提条件

前提条件 1:Huawei Cloud CLI(hcloud / KooCLI)>= 7.2.2 hcloud version を実行して、バージョンが 7.2.2 以上であることを確認してください。未インストールの場合、またはバージョンが古い場合は、 インストール方法について references/cli-installation-guide.md を参照してください。

hcloud version

前提条件 2:Huawei Cloud の認証情報が設定されていること CLI の設定に有効な認証情報(AK/SK、IAM など)が含まれていることを確認してください。

hcloud configure list

認証情報の設定方法(いずれかを選択):

  1. hcloud CLI の設定(推奨):hcloud configure を使った対話形式のセットアップ。認証情報は暗号化され、~/.hcloud/config.json に保存されます。

  2. 呼び出しごとの AK/SK:各コマンドで --cli-access-key=<AK> --cli-secret-key=<SK> を渡します(自動化向け。プロセス一覧に表示される点に注意してください)。

⚠️ 重要:hcloud(KooCLI)の認証には、~/.hcloud/config.json(hcloud configure で設定)または --cli-access-key/--cli-secret-key 引数のみが使用されます。HW_ACCESS_KEY、HW_SECRET_KEY、HUAWEI_CLOUD_AK、HUAWEI_CLOUD_SK、HUAWEI_CLOUD_REGION、HUAWEI_CLOUD_SECURITY_TOKEN 環境変数は読み込まれません。これらの変数は警告なしに無視され(hcloud は config.json にフォールバックします)、hcloud の認証方法としてユーザーにこれらの環境変数のエクスポートを指示しないでください。

このスキルのスクリプトで使用する認証情報の取得元:同梱の Shell スクリプトは hcloud CLI を呼び出す薄いラッパーです。HW_REGION_NAME/HUAWEI_CLOUD_REGION からリージョンを読み取る(または既定値 cn-north-4 を使用する)ことで --cli-region を設定しますが、認証は常に hcloud configure から取得されます。一度 hcloud configure で認証情報を設定すれば、その後はスクリプトを使用できます。 出力に有効な設定が含まれていない場合は、操作を中止し、ユーザーに設定を案内してください。 hcloud のパラメーター形式に関する要件 hcloud(KooCLI)では、すべてのパラメーターを --param=value 形式(等号で接続)で指定する必要があります。スペース区切りには対応していません。 ✅ 正しい例:hcloud CES ListAlarmRules --cli-region=cn-north-4 ❌ 誤った例:hcloud CES ListAlarmRules --cli-region cn-north-4

このスキルには、一般的な hcloud コマンドをまとめた 8 個の Shell スクリプトが含まれており、一括操作と整形された出力に対応しています。

**スクリプト一覧と使用例(クリックして展開)**
スクリプト機能hcloud コマンド
list_ecs.shECS インスタンス一覧を照会hcloud ECS ListServersDetails
list_alarms.shアラームルール一覧を照会hcloud CES ListAlarmRules
create_alert_rules.shアラームルールを一括作成hcloud CES CreateAlarmRules
batch_query_metrics.sh監視データを一括照会hcloud CES ShowMetricData
list_subscriptions.shSMN トピックとサブスクリプションを照会hcloud SMN ListTopics/Subscriptions
manage_notifications.shSMN サブスクリプションを管理hcloud SMN AddSubscription / BatchDeleteSubscriptions
update_alarm_notifications.shアラーム通知設定を更新hcloud CES UpdateAlarmNotifications

使用例:


# ECS インスタンスを照会

./scripts/list_ecs.sh                          # すべての ECS を照会
./scripts/list_ecs.sh --name ecs-001           # 名前で絞り込み
./scripts/list_ecs.sh --format json            # JSON 形式で出力
./scripts/list_ecs.sh --format ids             # ECS ID の一覧のみを出力

# アラームルールを照会

./scripts/list_alarms.sh                       # すべてのアラームを照会
./scripts/list_alarms.sh --name "cpu.*"  # 名前パターンで絞り込み
./scripts/list_alarms.sh --format ids          # アラーム ID のみを出力

# アラームルールを作成

./scripts/create_alert_rules.sh --template web --ecs-ids ecs-001,ecs-002
./scripts/create_alert_rules.sh --metric cpu_util --threshold 80 --ecs-ids ecs-001
./scripts/create_alert_rules.sh --template web --ecs-ids ecs-001 --smn-topic-urn
urn:smn:cn-north-4:xxx:ECS_ALARM_NOTIFY
./scripts/create_alert_rules.sh --template web --ecs-ids ecs-001 --dry-run  # ドライラン

主な機能

  • アラームルールの一括作成:テンプレートを使った作成(Web/データベースのシナリオ)、またはカスタムのメトリクス/しきい値設定に対応しています
  • 監視データの一括照会:複数の ECS に対する並列照会に対応し、CPU/メモリ/ディスクのメトリクスを出力します
  • 通知設定:メール/SMS/WeChat 通知、SMN サブスクリプションの管理に対応しています
  • セキュリティコンプライアンス:AK/SK は環境変数または CLI 設定で使用し、ハードコードしません

使用シナリオ

シナリオ 1:新しい ECS のアラームを一括設定する

背景:ECS インスタンスを 10 台新たに購入し、すべてのインスタンスに CPU/メモリのアラームルールを設定する必要があります。

手順:

  1. ECS インスタンス ID を照会します
  2. Web テンプレートを使ってアラームルールを一括作成します
  3. メール通知を設定します
# Step 0: Configure credentials once (hcloud CLI reads ~/.hcloud/config.json; it does NOT read AK/SK env vars)
hcloud configure
# Optional: set region env var consumed by the scripts' --cli-region default
export HUAWEI_CLOUD_REGION=cn-north-4
./scripts/list_ecs.sh --format ids

# 2. Batch create alarm rules
./scripts/create_alert_rules.sh --template web --ecs-ids ecs-001,ecs-002,ecs-003

# 3. Configure notification
./scripts/manage_notifications.sh --action subscribe --topic-urn <SMN_TOPIC_URN> --protocol email --endpoint [email protected]

シナリオ 2:複数の ECS の監視データを照会する

背景:過去 1 時間の 5 台の ECS インスタンスの CPU 使用率を確認する必要があります。

./scripts/batch_query_metrics.sh \
  --ecs-ids ecs-001,ecs-002,ecs-003,ecs-004,ecs-005 \
  --metric cpu_util \
  --from 2024-01-01T10:00:00Z \
  --to 2024-01-01T11:00:00Z \
  --format table

入力パラメーター

  • AK/SK:hcloud configure で設定します(推奨。~/.hcloud/config.json に保存されます)。hcloud CLI は AK/SK の環境変数を読み取りません
  • セキュリティトークン(任意):一時的な STS 認証情報を使用する場合は、hcloud configure --cli-mode=AKSK と --cli-security-token を使用するか、コマンドごとに --cli-security-token=<token> を渡します
  • リージョン:--cli-region パラメーター、または HUAWEI_CLOUD_REGION/HW_REGION_NAME 環境変数で指定します(デフォルト:cn-north-4)
  • ECS ID:カンマ区切りの ECS インスタンス ID
  • アラーム ID:カンマ区切りのアラームルール ID
  • テンプレート:アラームテンプレート(web/database)
  • メトリクス:監視メトリクス名。ホストメトリクス:cpu_util、disk_util_inband(名前空間 SYS.ECS);メモリメトリクス:mem_usedPercent(名前空間 AGT.ECS)
  • しきい値:アラームのしきい値
  • SMN トピック URN:通知用の SMN トピック URN

パラメーターの確認

すべての書き込み操作(作成/更新/削除)では、操作内容を明示し、実行前にユーザーの確認を得る必要があります。

操作タイプスクリプト確認する内容
作成create_alert_rules.sh対象 ECS ID のリスト、アラームテンプレート/メトリクス/しきい値
作成manage_notifications.sh --action createサブスクリプションプロトコル、エンドポイントアドレス、SMN トピック URN
作成create_email_subscription.shメールアドレス、SMN トピック URN
更新update_alarm_notifications.shアラーム ID、SMN トピック URN、操作タイプ
削除manage_notifications.sh --action deleteサブスクリプション URN(削除後は取り消せません)

クエリ操作(list_ecs/list_alarms/list_subscriptions/batch_query_metrics)は読み取り専用で、確認は不要です。

出力形式

  • テーブル:整形済みテーブルで出力(デフォルト)
  • JSON:プログラム処理用の JSON 形式
  • ID:スクリプト用の ID リストのみ

検証方法

操作を実行した後、次の方法で検証します。

  1. アラームの一覧表示:./scripts/list_alarms.sh --name <pattern>
  2. メトリクスのクエリ:./scripts/batch_query_metrics.sh --ecs-ids <ids> --metric cpu_util
  3. 通知の確認:./scripts/list_subscriptions.sh

一般的な検証上の問題については、references/troubleshooting.md を参照してください。

ベストプラクティス

  1. 標準的なシナリオではテンプレートを使用する:Web/Database テンプレートで、ほとんどのユースケースに対応できます
  2. 複数の通知チャネルを設定する:重要なアラームには、メールと SMS を設定します
  3. 適切なしきい値を設定する:CPU は 80%、メモリは 85%、ディスクは 90%を推奨します
  4. hcloud configure で認証情報を設定する(hcloud CLI は ~/.hcloud/config.json を読み取ります。AK/SK の環境変数は読み取りません):
    • ✅ 推奨:hcloud configure(~/.hcloud/config.json に暗号化して保存)
    • ⚠️ リージョン環境変数のみ:HUAWEI_CLOUD_REGION/HW_REGION_NAME はスクリプトの --cli-region のデフォルトを設定します。リージョンのみであり、認証には使用されません
    • ❌ 禁止:スクリプトまたは設定ファイルに AK/SK をハードコードする
    • ❌ 誤解を招く設定:export HUAWEI_CLOUD_AK/SK または export HW_ACCESS_KEY/SECRET_KEY では hcloud の認証はできません(環境変数は無視されます)
  5. 環境チェック用スクリプトを使用する:初回使用前に ./scripts/check_env.sh を実行して、設定を確認します

よくある問題

問題 1:hcloud コマンドが見つからない

解決策:KooCLI をインストールしてください。詳しくは references/cli-installation-guide.md を参照してください。

問題 2:403 Forbidden

解決策:IAM 権限を確認し、CES FullAccess および SMN FullAccess ポリシーが付与されていることを確認してください。詳しくは references/iam-policies.md を参照してください。

問題 3:アラームの作成に失敗する

解決策:メトリクス名としきい値の範囲を確認してください。CPU/メモリのしきい値は 0~100 にする必要があります。

問題 4:監視データがない

解決策:ECS インスタンスのステータスと、メトリクスの収集間隔を確認してください。データの反映には 5 分ほどかかる場合があります。

その他のトラブルシューティングガイドについては、references/troubleshooting.md を参照してください。

重要な注意事項

CLI バージョンの要件:hcloud CLI v7.2.2 以降を使用する必要があります。古いバージョンでは、一部の API パラメーター形式がサポートされない場合があります。

リージョンの一貫性:すべての操作で同じリージョン(--cli-region または HUAWEI_CLOUD_REGION 環境変数)を指定する必要があります。リージョンをまたぐ操作は失敗します。

アラームしきい値の範囲:CPU/メモリ使用率のしきい値は 0~100 の範囲で指定する必要があります。ディスク使用率のしきい値は 80~95 に設定することを推奨します。

監視データの遅延:CES の監視データには通常、5 分の遅延があります。リアルタイムデータを照会すると、結果が空になる場合があります。

SMN サブスクリプションの作成:

  • ✅ 推奨:./scripts/create_email_subscription.sh スクリプトを使用します。このスクリプトは、hcloud CLI で設定済みの認証情報を自動的に使用します(環境変数を手動で設定する必要はありません)。
  • ✅ 代替方法:Huawei Cloud Console(SMN → トピック → サブスクライブ)を使用してサブスクリプションを作成します。
  • ⚠️ 注意:メール/SMS サブスクリプションで通知を受信するには、確認が必要です。メールを確認し、確認リンクをクリックしてください。

詳細なガイドについては、references/smn-subscription-guide.md を参照してください。

一括操作の上限:1 回の一括作成で作成する ECS インスタンスは 20 個以下にすることを推奨します。インスタンスが多すぎると、API がタイムアウトする可能性があります。

認証情報のセキュリティ:

  • ✅ 推奨:hcloud configure を使用します。認証情報は ~/.hcloud/config.json に暗号化して保存され、hcloud CLI が読み取る唯一の認証情報ソースです。
  • ⚠️ リージョン環境変数のみ(認証には使用されません):HUAWEI_CLOUD_REGION/HW_REGION_NAME は、スクリプトの --cli-region のデフォルト値を設定します。
  • ❌ 誤解を招く方法:export HW_ACCESS_KEY/HW_SECRET_KEY または export HUAWEI_CLOUD_AK/HUAWEI_CLOUD_SK を実行しても、hcloud の認証には使用されません(環境変数は無視されます)。
  • ❌ 禁止:スクリプトや設定ファイルに AK/SK をハードコードしないでください。

認証:hcloud CLI は、~/.hcloud/config.json(hcloud configure で設定)またはコマンドごとの引数 --cli-access-key/--cli-secret-key を使用する場合にのみ認証します。AK/SK/トークン用の環境変数は通知なく無視されます。環境変数のエクスポートを、有効な認証方法として記載しないでください。

参考資料

コメント