huawei-cloud-ecs-alert について
hcloud を使って ECS インスタンスの CES アラームルールを一括作成・管理する Huawei Cloud 向けスキルです。監視メトリクスの照会や通知管理にも対応し、ルール削除は禁止、書き込み操作には事前確認が必要です。
主な機能
- 01テンプレートまたは任意設定でアラームを一括作成
- 02複数 ECS インスタンスのメトリクス照会
- 03ECS インスタンスとアラームルールの一覧表示
- 04メール、SMS、WeChat 通知の設定
- 05書き込み操作前の確認
- 06アラームルールの削除禁止
活用シーン
- 01新規 ECS インスタンスへのアラーム設定
- 02環境ごとに異なるアラームポリシーの適用
- 03複数 ECS インスタンスの監視メトリクス確認
- 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.mdcli-installation-guide.mdcommon-commands.mdiam-policies.mdmemory-monitoring-guide.mdrelated-apis.mdsmn-subscription-guide.mdtroubleshooting.mdscripts/_env_compat.shbatch_query_metrics.shcheck_env.shconfig.pycreate_alert_rules.shcreate_email_subscription.shlist_alarms.shlist_ecs.shlist_subscriptions.shmanage_notifications.shupdate_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 | 代替手段 |
|---|---|---|
| アラーム履歴の照会 | ShowAlarmHistory | CES コンソールで確認するか、hcloud CES ListAlarmHistories/v1 を手動で実行します |
| アラームルールの有効化/無効化 | UpdateAlarm | CES コンソールで操作します(このスキルではラップされていません) |
| アラームのしきい値/メトリクスの変更 | UpdateAlarm | ルールを削除して再作成します。通知のみを変更する場合は、./scripts/update_alarm_notifications.sh を使用します |
| SMN トピックの作成 | CreateTopic | SMN コンソールで作成するか、hcloud SMN CreateTopic を手動で実行します |
| 監視ダッシュボードの作成 | CreateOneDashboard | CES コンソールで操作します |
| 個別のアラームルールの詳細表示 | 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認証情報の設定方法(いずれかを選択):
hcloud CLI の設定(推奨):
hcloud configureを使った対話形式のセットアップ。認証情報は暗号化され、~/.hcloud/config.jsonに保存されます。呼び出しごとの 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 ListServersDetailslist_alarms.shアラームルール一覧を照会 hcloud CES ListAlarmRulescreate_alert_rules.shアラームルールを一括作成 hcloud CES CreateAlarmRulesbatch_query_metrics.sh監視データを一括照会 hcloud CES ShowMetricDatalist_subscriptions.shSMN トピックとサブスクリプションを照会 hcloud SMN ListTopics/Subscriptionsmanage_notifications.shSMN サブスクリプションを管理 hcloud SMN AddSubscription / BatchDeleteSubscriptionsupdate_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/メモリのアラームルールを設定する必要があります。
手順:
- ECS インスタンス ID を照会します
- Web テンプレートを使ってアラームルールを一括作成します
- メール通知を設定します
# 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 リストのみ
検証方法
操作を実行した後、次の方法で検証します。
- アラームの一覧表示:
./scripts/list_alarms.sh --name <pattern> - メトリクスのクエリ:
./scripts/batch_query_metrics.sh --ecs-ids <ids> --metric cpu_util - 通知の確認:
./scripts/list_subscriptions.sh
一般的な検証上の問題については、references/troubleshooting.md を参照してください。
ベストプラクティス
- 標準的なシナリオではテンプレートを使用する:Web/Database テンプレートで、ほとんどのユースケースに対応できます
- 複数の通知チャネルを設定する:重要なアラームには、メールと SMS を設定します
- 適切なしきい値を設定する:CPU は 80%、メモリは 85%、ディスクは 90%を推奨します
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 の認証はできません(環境変数は無視されます)
- ✅ 推奨:
- 環境チェック用スクリプトを使用する:初回使用前に
./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/トークン用の環境変数は通知なく無視されます。環境変数のエクスポートを、有効な認証方法として記載しないでください。