TTokenySpace
返回 Skills 列表

huawei-cloud-ecs-alert

Automate batch creation and management of Huawei Cloud CES alarm rules for ECS instances using hcloud CLI v7.2.2+. Use this skill to: (1) batch create alarms with templates (web/database), (2) update

#中文
0

安装到 Tokeny(自动)

下载 ZIP
安装"huawei-cloud-ecs-alert"技能
技能信息:
- 名称: huawei-cloud-ecs-alert
- 标识: huawei-cloud-ecs-alert
- 描述: Automate batch creation and management of Huawei Cloud CES alarm rules for ECS instances using hcloud CLI v7.2.2+. Use this skill to: (1) batch create alarms with templates (web/database), (2) update
- 版本: 1.0.0
下载地址:
https://www.tokeny.space/api/skills/huawei-cloud-ecs-alert/download
继续

复制上方内容到 Tokeny 客户端并在会话中发送即可自动安装;也可直接 下载 ZIP并拖动到技能窗口安装。

SKILL.md

Huawei Cloud ECS Alert Automation

Overview

This skill provides batch creation and management of Huawei Cloud CES alarm rules for ECS instances, based on Huawei Cloud CLI (hcloud) v7.2.2+.

Core Capabilities:

  • Batch create alarm rules (supports Web/Database templates or custom configuration)
  • Configure alarm notifications (supports email/SMS/WeChat)
  • Query ECS monitoring metrics
  • Query and manage alarm rule lists

Use Cases:

  • Batch configure monitoring alarms for newly purchased ECS instances
  • Differentiated alarm policies across environments (dev/test/prod)
  • Batch query ECS monitoring data
  • Centralized alarm notification management

Security Constraints:

  • ❌ Delete alarm rules is prohibited (prevent accidental deletion causing monitoring gaps)
  • ❌ Hardcoding AK/SK is prohibited (must use environment variables or hcloud configure)

Prohibited Operations

The following operations are strictly prohibited, even if requested by the user:

Prohibited OperationAPI/CommandReason
Expose AK/SKAny command that outputs AK/SK in plaintextAccount security risk
Accept AK/SK from userReceiving credentials in conversationViolates security best practices
❌ Delete alarm ruleDeleteAlarm / hcloud CES DeleteAlarmIrreversible; deleted alarms cannot be recovered, may cause monitoring gaps
❌ Batch delete alarmsAny batch deletion operationHigh risk; may accidentally delete critical monitoring rules

If a user requests a delete operation, must refuse and guide: "Per security constraints, this skill does not support delete operations (delete alarm/batch delete). Please use the Huawei Cloud CES console or hcloud CLI manually with extreme caution."

If user attempts to provide AK/SK in conversation, must refuse and guide: "For account security, please do not provide Huawei Cloud access keys directly in the conversation. Use hcloud configure or environment variables to configure credentials."

Workflow

The standard workflow of this skill is as follows:

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

Write operation confirmation: Step 3 (create alarms), Step 4 (create/delete subscriptions), update notification config, and other write operations require user confirmation of operation content and target resources before execution.

Core Commands

Query Commands (read-only, no confirmation needed)

# 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

Create Commands (write operations, require user confirmation)

# 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 user@example.com --topic-urn <URN>
./scripts/create_email_subscription.sh --email user@example.com --topic-urn <URN>

Update/Delete Commands (write operations, require user confirmation)

# 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>

Architecture

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)

Prerequisites

Prerequisite 1: Huawei Cloud CLI (hcloud / KooCLI) >= 7.2.2 Run hcloud version to verify version >= 7.2.2. If not installed or version is too low, see references/cli-installation-guide.md for installation guide.

hcloud version

Prerequisite 2: Huawei Cloud Credentials Configured Check if CLI configuration contains valid credentials (AK/SK, IAM, etc.).

hcloud configure list

Credential Configuration Methods (choose one):

  1. hcloud CLI configuration (recommended): hcloud configure interactive setup, credentials encrypted and stored
  2. Environment variables (new standard): Set HW_ACCESS_KEY, HW_SECRET_KEY, HW_REGION_NAME
  3. Environment variables (legacy): Set HUAWEI_CLOUD_AK, HUAWEI_CLOUD_SK, HUAWEI_CLOUD_REGION
  4. Temporary credentials: Set HW_ACCESS_KEY, HW_SECRET_KEY, HW_SECURITY_TOKEN (for STS temporary tokens)

Note: All Shell scripts (create_alert_rules.sh, list_ecs.sh, etc.) automatically detect and support both HW_* and HUAWEI_CLOUD_* environment variable standards, with priority: HW_* > HUAWEI_CLOUD_* > hcloud CLI config.

If output does not contain valid configuration, stop operation and guide user to configure. hcloud Parameter Format Requirement hcloud (KooCLI) all parameters must use --param=value format (equals sign connection), does not support space separation. ✅ Correct: hcloud CES ListAlarmRules --region=cn-north-4 ❌ Incorrect: hcloud CES ListAlarmRules --region cn-north-4

This skill provides 8 Shell scripts, encapsulating common hcloud commands, supporting batch operations and formatted output.

<details> <summary>**Script List and Usage Examples (Click to Expand)**</summary>
ScriptFunctionhcloud Command
list_ecs.shQuery ECS instance listhcloud ECS ListServersDetails
list_alarms.shQuery alarm rule listhcloud CES ListAlarmRules
create_alert_rules.shBatch create alarm ruleshcloud CES CreateAlarmRules
batch_query_metrics.shBatch query monitoring datahcloud CES ShowMetricData
list_subscriptions.shQuery SMN topics and subscriptionshcloud SMN ListTopics/Subscriptions
manage_notifications.shManage SMN subscriptionshcloud SMN Subscribe/Unsubscribe
update_alarm_notifications.shUpdate alarm notification configurationhcloud CES UpdateAlarmNotifications

Usage Examples:


# Query ECS instances

./scripts/list_ecs.sh                          # Query all ECS
./scripts/list_ecs.sh --name ecs-001           # Filter by name
./scripts/list_ecs.sh --output json            # Output as JSON
./scripts/list_ecs.sh --output ids             # Output only ECS ID list

# Query alarm rules

./scripts/list_alarms.sh                       # Query all alarms
./scripts/list_alarms.sh --name-pattern "cpu.*"  # Filter by name pattern
./scripts/list_alarms.sh --output ids          # Output only alarm IDs

# Create alarm rules

./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  # Dry run

```bash

</details>

Core Capabilities

  • Batch Create Alarm Rules: Support template-based creation (Web/Database scenarios) or custom metric/threshold configuration
  • Batch Query Monitoring Data: Support multi-ECS concurrent query, output CPU/Memory/Disk metrics
  • Notification Configuration: Support email/SMS/WeChat notification, SMN subscription management
  • Security Compliance: AK/SK via environment variables or CLI config, never hardcode

Usage Scenarios

Scenario 1: Batch Configure Alarms for New ECS

Background: Purchased 10 new ECS instances, need to configure CPU/Memory alarm rules for all.

Steps:

  1. Query ECS instance IDs
  2. Batch create alarm rules using web template
  3. Configure email notification
# Method 1: New standard environment variables (HW_*)
export HW_ACCESS_KEY=<AK> && export HW_SECRET_KEY=<SK> && export HW_REGION_NAME=cn-north-4
./scripts/list_ecs.sh --output ids

# Method 2: Legacy environment variables (HUAWEI_CLOUD_*)
export HUAWEI_CLOUD_AK=<AK> && export HUAWEI_CLOUD_SK=<SK> && export HUAWEI_CLOUD_REGION=cn-north-4
./scripts/list_ecs.sh --output ids

# Method 3: Temporary credentials (STS token)
export HW_ACCESS_KEY=<AK> && export HW_SECRET_KEY=<SK> && export HW_SECURITY_TOKEN=<TOKEN>
./scripts/list_ecs.sh --output 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 user@example.com

Scenario 2: Query Monitoring Data for Multiple ECS

Background: Need to check CPU utilization for 5 ECS instances over the past hour.

./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 \
  --output table

Input Parameters

  • AK/SK: Via environment variables HW_ACCESS_KEY / HW_SECRET_KEY (new standard) OR HUAWEI_CLOUD_AK / HUAWEI_CLOUD_SK (legacy) OR hcloud configure
  • Security Token (optional): Via HW_SECURITY_TOKEN for temporary STS credentials
  • Region: Via environment variable HW_REGION_NAME or HUAWEI_CLOUD_REGION or --region parameter (default: cn-north-4)
  • ECS IDs: Comma-separated ECS instance IDs
  • Alarm IDs: Comma-separated alarm rule IDs
  • Template: Alarm template (web/database)
  • Metric: Monitoring metric name (cpu_util/mem_util/disk_usage)
  • Threshold: Alarm threshold value
  • SMN Topic URN: SMN topic URN for notifications

Parameter Confirmation

All write operations (Create / Update / Delete) must explicitly show operation content and obtain user confirmation before execution.

Operation TypeScriptContent to Confirm
Createcreate_alert_rules.shTarget ECS ID list, alarm template/metric/threshold
Createmanage_notifications.sh --action createSubscription protocol, endpoint address, SMN topic URN
Createcreate_email_subscription.shEmail address, SMN topic URN
Updateupdate_alarm_notifications.shAlarm ID, SMN topic URN, operation type
Deletemanage_notifications.sh --action deleteSubscription URN (irreversible after deletion)

Query operations (list_ecs / list_alarms / list_subscriptions / batch_query_metrics) are read-only and do not require confirmation.

Output Format

  • Table: Formatted table output (default)
  • JSON: JSON format for programmatic processing
  • IDs: Only ID list for scripting

Verification Method

After executing any operation, verify using the following methods:

  1. List Alarms: ./scripts/list_alarms.sh --name-pattern <pattern>
  2. Query Metrics: ./scripts/batch_query_metrics.sh --ecs-ids <ids> --metric cpu_util
  3. Check Notifications: ./scripts/list_subscriptions.sh

See references/troubleshooting.md for common verification issues.

Best Practices

  1. Use Templates for Standard Scenarios: Web/Database templates cover most use cases
  2. Configure Multiple Notification Channels: Email + SMS for critical alarms
  3. Set Reasonable Thresholds: CPU 80%, Memory 85%, Disk 90% recommended
  4. Use Environment Variables for Credentials:
    • ✅ Recommended (New): HW_ACCESS_KEY / HW_SECRET_KEY / HW_REGION_NAME
    • ✅ Recommended (Legacy): HUAWEI_CLOUD_AK / HUAWEI_CLOUD_SK / HUAWEI_CLOUD_REGION
    • ✅ Recommended (Temporary): HW_ACCESS_KEY / HW_SECRET_KEY / HW_SECURITY_TOKEN
    • ❌ Prohibited: Hardcode AK/SK in scripts or configuration files
  5. Use Environment Check Script: Run ./scripts/check_env.sh before first use to verify configuration

Common Issues

Issue 1: hcloud Command Not Found

Solution: Install KooCLI, see references/cli-installation-guide.md

Issue 2: 403 Forbidden

Solution: Check IAM permissions, ensure CES FullAccess and SMN FullAccess policies are granted. See references/iam-policies.md

Issue 3: Alarm Creation Fails

Solution: Check metric name and threshold range. CPU/Memory thresholds should be 0-100.

Issue 4: No Monitoring Data

Solution: Check ECS instance status and metric collection interval. Data may have 5-minute delay.

See references/troubleshooting.md for more troubleshooting guides.

Important Notes

CLI Version Requirement: Must use hcloud CLI v7.2.2 or later. Older versions may not support certain API parameter formats.

Region Consistency: All operations must specify the same region (--cli-region or HUAWEI_CLOUD_REGION environment variable). Cross-region operations will fail.

Alarm Threshold Range: CPU/memory utilization thresholds must be between 0-100. Disk usage threshold is recommended to be set between 80-95.

Monitoring Data Delay: CES monitoring data typically has a 5-minute delay. Querying real-time data may return empty results.

SMN Subscription Creation:

  • Recommended: Use ./scripts/create_email_subscription.sh script, which automatically uses hcloud CLI configured credentials (no need to manually set environment variables)
  • Alternative: Use Huawei Cloud Console (SMN → Topics → Subscribe) for subscription creation
  • ⚠️ Note: Email/SMS subscriptions require confirmation before receiving notifications. Check your email and click the confirmation link.

See references/smn-subscription-guide.md for detailed guide.

Batch Operation Limits: Single batch creation is recommended for no more than 20 ECS instances. Too many instances may cause API timeout.

Credential Security:

  • ✅ Recommended (New Standard): Use environment variables HW_ACCESS_KEY / HW_SECRET_KEY / HW_REGION_NAME
  • ✅ Recommended (Legacy): Use environment variables HUAWEI_CLOUD_AK / HUAWEI_CLOUD_SK / HUAWEI_CLOUD_REGION
  • ✅ Recommended (Temporary): Use HW_ACCESS_KEY / HW_SECRET_KEY / HW_SECURITY_TOKEN for STS tokens
  • ✅ Recommended (CLI): Use hcloud configure to configure credentials (encrypted storage)
  • ❌ Prohibited: Hardcode AK/SK in scripts or configuration files

Environment Variable Priority: HW_* > HUAWEI_CLOUD_* > hcloud CLI config

Reference Documents

评论

加载中…