mcpField
A
alibabacloud-kvstore-health-inspection

alibabacloud-kvstore-health-inspection

github.com/aliyunデータ・データベース28152 回インストール1 日前に更新
リポジトリ

alibabacloud-kvstore-health-inspection について

Alibaba Cloud Redis(KVStore)インスタンスを点検し、標準レポートを作成する AI エージェント向けスキルです。リソース使用量、セッション、キー、スローログ、アラートを読み取り専用で確認します。

主な機能

  1. 01インスタンス情報とセッションの確認
  2. 02CPU、メモリ、帯域幅の集計
  3. 03ビッグキー、ホットキー、スローログの分析
  4. 04アラート確認とリスク提案の作成
  5. 05単一・複数インスタンスのレポート生成

活用シーン

  1. 01指定した Redis インスタンスの状態確認
  2. 02アカウント内の Redis インスタンスの一括確認
  3. 03CPU、メモリ、接続使用量の分析
  4. 04遅いコマンド、大きなキー、アラートの調査

インストール

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

$npx skills add https://github.com/aliyun/alibabacloud-aiops-skills --skill alibabacloud-kvstore-health-inspection

インストール後、Claude Code で/alibabacloud-kvstore-health-inspectionを入力して読み込まれたか確認します。

同梱ファイル

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

references/
cli-installation-guide.md
manual-workflow.md
ram-policies.md
report-format.md
scripts/
check-write-operation.sh
find-instance-region.py
health-inspect.py

詳細

厳格なルール(違反すると即時失格)

基本ルール:すべての検査は python3 scripts/health-inspect.py 経由で実行する必要があります。 このスクリプトには、正しい API 呼び出しがすべて内部に組み込まれています。AI は検査データを収集するために aliyun CLI を直接呼び出してはなりません。

  1. データ収集のために aliyun CLI を呼び出さないでください:すべての検査データは health-inspect.py 経由で取得する必要があります。AI は aliyun r-kvstore を直接実行してスクリプトを迂回してはなりません。AI が直接実行できる aliyun コマンドは、aliyun configure list(認証情報の確認)、aliyun version(バージョンの確認)、aliyun configure set(設定の設定)、aliyun plugin(プラグインの管理)のみです
  2. CloudMonitor(cms)API を使用しないでください:パフォーマンス監視データは、スクリプトが R-kvstore の describe-history-monitor-values API を通じて取得します。代替手段として aliyun cms describe-metric-list/describe-metric-data を絶対に使用しないでください
  3. Redis に直接接続しないでください:redis-cli クライアントをインストールしたり、いかなる方法でも Redis インスタンスに接続したり、Redis コマンドを実行したりしないでください
  4. 書き込み操作を実行しないでください:modify-instance*、create-instance*、delete-instance*、またはインスタンスの状態を変更するその他の API を呼び出さないでください
  5. API 呼び出しの失敗を報告してください:スクリプトのいずれかのステップが失敗した場合、レポートで「取得失敗」と記載してください。代替手段でデータを取得しようとしないでください

このスキルの使い方

使用方法

スクリプトを手動で実行する必要はありません! これは AI エージェントのスキルです。自然言語で必要な内容を説明するだけです。

会話例

例 1:単一インスタンスの検査

Inspect Redis instance r-bp1xxxxxxxxxxxx

例 2:複数インスタンスの検査

Inspect instances r-bp1xxxxxxxxxxxx and r-bp2yyyyyyyyyyyyyy

例 3:アカウント全体の検査(すべてのインスタンス)

Inspect all Redis instances in my account

例 4:リージョンを指定

Inspect Redis instance r-bp1xxxxxxxxxxxx in cn-hangzhou region

例 5:カスタム期間でのリソース使用状況

Show resource usage for r-bp1xxxxxxxxxxxx in the last 3 days

--days 3 に対応します

例 6:リソース使用状況のみ

Show CPU and memory usage for r-bp1xxxxxxxxxxxx

--item resource に対応します

例 7:スローログのみ

Analyze recent slow logs for r-bp1xxxxxxxxxxxx

--item slowlog に対応します

例 8:ビッグキー/ホットキー分析

Check for big keys and hot keys in r-bp1xxxxxxxxxxxx

--item bigkey に対応します

例 9:複数の検査項目を組み合わせる

Show slow logs and alert history for r-bp1xxxxxxxxxxxx

--item slowlog --item alert に対応します

例 10:一括処理+特定項目

Show CPU usage for all instances in the last 3 days

--all --days 3 --item resource に対応します

例 11:出力形式を指定

Generate a Markdown report for r-bp1xxxxxxxxxxxx

--format markdown に対応します

AI の動作ルール(必ず従ってください)
  1. 検査には必ずスクリプトを使用してください:すべての検査操作は、python3 scripts/health-inspect.py のみを使用して実行できます。AI の役割は、ユーザーの意図を特定する -> 正しいスクリプトパラメーターを組み立てる -> スクリプトを実行する -> レポートをユーザーに提示することです。検査データを収集するために aliyun CLI を直接呼び出してはいけません。
  2. 検査モードの選択:ユーザーの意図に基づいて、正しい実行モードを選択します
    • ユーザーが「すべてのインスタンス」/「アカウント全体」と指定した場合 -> --all を使用します
    • ユーザーが複数のインスタンス ID を指定した場合 -> 複数の ID を渡します:health-inspect.py r-xxx r-yyy
    • ユーザーが単一のインスタンスを指定した場合 -> 単一インスタンスモードを使用します:health-inspect.py r-xxx
  3. 検査項目の選択:ユーザーが注目する領域を --item パラメーターに対応付けます
    • ユーザーが「CPU」/「メモリ」/「リソース使用量」/「接続数」/「帯域幅」に言及した場合 -> --item resource
    • ユーザーが「セッション」/「接続」/「アクティブ接続」/「クライアント IP」に言及した場合 -> --item session
    • ユーザーが「ビッグキー」/「ホットキー」/「大きなキー」/「キーごとのメモリ使用量」に言及した場合 -> --item bigkey
    • ユーザーが「スローログ」/「低速コマンド」/「レイテンシ」に言及した場合 -> --item slowlog
    • ユーザーが「アラート」/「アラーム」/「警告」/「通知」に言及した場合 -> --item alert
    • ユーザーが複数の領域に言及した場合 -> 複数の --item を組み合わせます(例:--item resource --item slowlog)
    • ユーザーが指定していない場合(例:「検査を実行」/「全項目をチェック」) -> --item を追加せず、デフォルトの全項目検査を実行します
  4. 出力の統一:複数インスタンス(2 つ以上)のレポートは、インデックスページ(index.html)と個別の詳細レポートを含む単一のディレクトリに出力します。単一インスタンスの場合は、単一のファイルを出力します
  5. インスタンスを手動で列挙してから 1 つずつ実行しないでください:スクリプトの --all にはインスタンスの自動検出機能が組み込まれています。AI が事前に describe-instances を呼び出す必要はありません
  6. スクリプトが失敗した場合:いずれかの手順でスクリプトがエラーを報告した場合は、そのエラーメッセージをユーザーに伝えてください。別のデータ取得方法を試すために aliyun CLI を呼び出してはいけません
  7. レポートの出力後に追加の質問をしないでください:このスキルで行えるのは検査のみです。レポートが生成された時点でタスクは完了です。「さらに分析が必要ですか?」など、同様の追加質問を付け加えてはいけません
AI の実行フロー(必ずこの順序に従ってください)
  1. ユーザーの意図を特定し、正しい検査モードとパラメーターを選択します
  2. python3 scripts/health-inspect.py <params> を実行します。1 つのコマンドですべてのデータを収集できます
  3. スクリプトが次の処理を自動で行います:リージョンの検出、パフォーマンスデータ取得のための R-kvstore API 呼び出し、レポートの生成
  4. 生成されたレポートファイルのパスをユーザーに提示します
  5. レポートの内容に基づいて、追加の質問に回答します

Alibaba Cloud Redis(KVStore)インスタンスのヘルスチェック スキル

このスキルは、Redis インスタンスのリソース使用状況をヘルスチェックし、標準化されたレポートを生成します。

チェック項目(7 セクション):

  1. インスタンス基本情報 — ID、名前、バージョン、クラス、アーキテクチャ、ステータス
  2. 現在のセッション — 接続使用状況の分布、ノードトポロジー
  3. リソース使用状況(過去 7 日間) — CPU、メモリ、接続、帯域幅の ECharts チャート
  4. ビッグキー/ホットキー — キャッシュ分析によるビッグキー Top10 とホットキー Top10
  5. スローログ統計(過去 7 日間) — 種類別のスローコマンドの集計
  6. アラート履歴(過去 7 日間) — CloudMonitor(CMS)のアラート記録
  7. チェック結果と推奨事項 — リスクの優先度に応じた提案

リソースメトリクス:

  • CPU 使用率、接続使用率、メモリ使用率
  • 入力/出力帯域幅の使用率
  • プロキシメトリクス(クラスター/SplitRW のみ)
  • 永続メモリ使用率(Tair のみ)
  • ディスク使用率(Tair のみ)

アーキテクチャのサポート:

  • Standard(シングルノード、マスター/レプリカ)
  • Cluster(クラスターエディション)
  • SplitRW(読み書き分離)

インスタンスタイプのサポート:

  • Redis Community Edition
  • Tair(DRAM)
  • Tair(永続メモリ、InstanceClass: tair.scm.*)
  • Tair(ESSD、InstanceClass: tair.essd.*)

アーキテクチャ: R-kvstore API(DescribeHistoryMonitorValues)+ Aliyun CLI


前提条件

実行環境:

  • Python >= 3.7
  • Aliyun CLI >= 3.3.3
  • OS:Linux/macOS/Windows

必須 CLI ツール:

  • aliyun CLI >= 3.3.3(有効な認証情報が設定済みであること)
  • redis-cli は不要です(このスキルは API を介してすべてのチェックを実行するため、Redis への直接接続は必要ありません)

Python の依存関係:

# Uses only Python standard library: subprocess, json, os, sys, datetime
# All Alibaba Cloud API calls are made through aliyun CLI

インストールの確認:

事前確認:Aliyun CLI >= 3.3.3 が必要です aliyun version を実行して、バージョンが >= 3.3.3 であることを確認してください。未インストールの場合、またはバージョンが古い場合は、 詳しいインストール手順について references/cli-installation-guide.md を参照するか、 curl -fsSL https://aliyuncli.alicdn.com/setup.sh | bash を実行してインストール/更新してください。 次に、プラグインの自動インストールを有効にするため、[必須] aliyun configure set --auto-plugin-install true を実行してください。 次に、プラグインを最新の状態にするため、[必須] aliyun plugin update を実行してください。

[必須] CLI User-Agent — すべてのビジネス API の aliyun CLI 呼び出し(例:aliyun r-kvstore …、aliyun das …、aliyun cms …)には、以下のオブザーバビリティセクションで定義する完全な UA テンプレートを指定した --user-agent フラグを付ける必要があります。システム/ユーティリティコマンドには --user-agent を付けてはいけません(オブザーバビリティセクションの除外リストを参照)。非推奨の aliyun configure ai-mode の仕組みや ALIBABA_CLOUD_USER_AGENT 環境変数に依存しないでください。どちらも廃止されています。

オブザーバビリティ(aliyun CLI の呼び出し前に必ず従ってください)

このスキルは、すべてのビジネス API の aliyun CLI コマンドで --user-agent フラグを使用してオブザーバビリティヘッダーを送信します。非推奨の aliyun configure ai-mode enable / disable / set-user-agent コマンドおよび ALIBABA_CLOUD_USER_AGENT 環境変数を使用してはいけません。

適用範囲のルール(SA-2.11):

  • ✅ ビジネス API コマンド(--user-agent を付ける): aliyun r-kvstore <action>、aliyun das <action>、aliyun cms <action> など。
  • ❌ システム/ユーティリティコマンド(--user-agent を付けてはいけません): aliyun configure …(例:aliyun configure list、aliyun configure set)、aliyun plugin …(例:aliyun plugin update、aliyun plugin install、aliyun plugin list)、aliyun help、aliyun version、aliyun upgrade、aliyun --help。
ステップ 1 — セッション ID を生成する(スキルの呼び出しごとに 1 回)
# 32-char lowercase hex without dashes (UUID v4)
export ALICLOUD_SKILL_SESSION_ID="$(uuidgen | tr -d '-' | tr 'A-F' 'a-f')"
ステップ 2 — UA テンプレート(セッション ID セグメントを含む完全な形式を必ず使用)
AlibabaCloud-Agent-Skills/alibabacloud-kvstore-health-inspection/${ALICLOUD_SKILL_SESSION_ID}

/{session-id} セグメントは必須です。これがない UA は SA-2.11 のレビューで却下されます。

Step 3 — すべてのビジネス API aliyun CLI コマンドに --user-agent を渡します

ビジネスプロダクトのコマンド(r-kvstore/das/cms など)のみに適用されます。上記のスコープルールに記載されているシステムコマンドには、--user-agent を追加してはなりません。

# ✅ Business API command — UA REQUIRED
aliyun r-kvstore describe-instances \
  --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-kvstore-health-inspection/${ALICLOUD_SKILL_SESSION_ID}"

# ❌ System / utility commands — UA MUST NOT be passed
aliyun configure list
aliyun plugin update
aliyun version

Python スクリプト scripts/health-inspect.py は、内部のすべてのビジネス API aliyun 呼び出しにこの UA を自動的に追加し、システムコマンドには追加しません。AI が CLI を直接呼び出す場合は、ビジネス API コマンドのみに --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-kvstore-health-inspection/${ALICLOUD_SKILL_SESSION_ID}" を追加しなければなりません。また、aliyun configure …、aliyun plugin …、aliyun help、aliyun version、aliyun upgrade、aliyun --help には追加してはなりません。

UA を省略したり、形式を変更したり、/{session-id} の部分を省略したりしないでください。


必要な RAM 権限

このスキルでは読み取り専用 API のみを使用します。書き込み権限は必要ありません。

権限ポリシーの全容と詳細については、references/ram-policies.md を参照してください。

[MUST] 権限エラーへの対処: 実行中のいずれかの時点で、権限エラーによりコマンドまたは API 呼び出しが失敗した場合は、次の手順に従ってください。

  1. references/ram-policies.md を読み、この SKILL に必要な権限の全リストを確認します
  2. ram-permission-diagnose スキルを使って、必要な権限を申請できるようユーザーを案内します
  3. 必要な権限が付与されたことをユーザーが確認するまで、一時停止して待ちます

認証

事前確認:Alibaba Cloud の認証情報が必要です

セキュリティルール:

  • AK/SK の値を読み取ったり、エコーしたり、表示したりすることは絶対にしないでください
  • 会話やコマンドラインで AK/SK を直接入力するようユーザーに求めることは絶対にしないでください
  • 認証情報の状態の確認には aliyun configure list のみを使用してください
aliyun configure list

有効なプロファイルがあるか、出力を確認します。

有効なプロファイルが存在しない場合は、ここで停止してください。 このセッションの外で認証情報を設定するようユーザーを案内してください。


パラメーターリファレンス

パラメーター必須/任意説明デフォルト
InstanceId必須(--all を指定する場合は省略)Redis インスタンス ID(r-xxx)。複数指定できますユーザーが指定
RegionId任意インスタンスのリージョン(指定されていない場合は自動検出)自動検出
Days任意点検対象期間(日数)7
Item任意点検項目を指定します(複数指定可能)。すべて点検する場合は省略しますすべて
Profile任意aliyun CLI のプロファイル名デフォルトプロファイル
Output任意レポートの出力ディレクトリまたはファイルパス~/Downloads/
Format任意レポート形式:html、markdown、texthtml

Item の値:

item点検内容
resourceCPU/メモリ/接続数/帯域幅の使用状況の推移(データノードおよびプロキシノード)
session現在のセッション情報、接続使用状況、送信元 IP 統計
bigkeyビッグキー/ホットキーの分析(大容量キー、ビッグキー、ホットキー、高トラフィックキー)
slowlogスローログの統計とコマンド分析
alertアラートルールの設定とアラート履歴

コアワークフロー

推奨:自動スクリプトを使用する(ワンコマンドで診断)
python3 scripts/health-inspect.py <INSTANCE_ID> [options]

CLI 引数:

引数短縮形説明
INSTANCE_ID(位置引数)Redis インスタンス ID。複数指定できます。--all を指定する場合は省略します
--all現在のアカウントにあるすべての Redis インスタンスを診断します
--region-rリージョンを指定します(指定しない場合は自動検出します)
--days-d診断する期間(日数)。既定値は 7 です
--item診断項目を指定します(複数回指定できます)。省略するとすべての項目が対象です。選択肢:resource、session、bigkey、slowlog、alert
--profile-paliyun CLI のプロファイル名を指定します
--output-oレポートの出力先ディレクトリまたはファイルパスを指定します
--format-fレポート形式:html(既定)、markdown、text

使用例:

# Single instance (auto-discover Region)
python3 scripts/health-inspect.py r-bp1xxxxxxxxxxxx

# Multi-instance
python3 scripts/health-inspect.py r-bp1xxxxxxxxxxxx r-bp2yyyyyyyyyyyyyy

# All instances in account
python3 scripts/health-inspect.py --all

# All instances in specific Region
python3 scripts/health-inspect.py --all --region cn-hangzhou

# Custom time range (last 3 days)
python3 scripts/health-inspect.py r-bp1xxxxxxxxxxxx --days 3

# Resource usage only (CPU/memory/connection/bandwidth)
python3 scripts/health-inspect.py r-bp1xxxxxxxxxxxx --item resource

# Big key and hot key analysis only
python3 scripts/health-inspect.py r-bp1xxxxxxxxxxxx --item bigkey

# Slow logs only
python3 scripts/health-inspect.py r-bp1xxxxxxxxxxxx --item slowlog

# Slow logs and alerts only
python3 scripts/health-inspect.py r-bp1xxxxxxxxxxxx --item slowlog --item alert

# Batch + specific items
python3 scripts/health-inspect.py --all --item resource --item slowlog

# Markdown format
python3 scripts/health-inspect.py r-bp1xxxxxxxxxxxx --format markdown

# Custom output directory
python3 scripts/health-inspect.py --all -o /tmp/redis_report

# Full parameters
python3 scripts/health-inspect.py r-bp1xxxxxxxxxxxx -p myprofile -r cn-hangzhou -d 14 -o ./report

このスクリプトは、すべての診断手順を自動で実行します。複数のインスタンスを実行した場合、レポートは概要ページ(index.html)を含む単一のディレクトリに出力されます。

項目選択の例:

ユーザーが特定の診断項目を指定した場合は、その意図に合わせて --item パラメーターを設定します。

# User says "check CPU and memory" -> resource item
python3 scripts/health-inspect.py r-bp1xxxxxxxxxxxx --item resource

# User says "analyze slow commands" -> slowlog item
python3 scripts/health-inspect.py r-bp1xxxxxxxxxxxx --item slowlog

# User says "find big keys" -> bigkey item
python3 scripts/health-inspect.py r-bp1xxxxxxxxxxxx --item bigkey

# User says "check sessions and connections" -> session item
python3 scripts/health-inspect.py r-bp1xxxxxxxxxxxx --item session

# User says "review alerts" -> alert item
python3 scripts/health-inspect.py r-bp1xxxxxxxxxxxx --item alert

# User specifies multiple items
python3 scripts/health-inspect.py r-bp1xxxxxxxxxxxx --item resource --item bigkey --item slowlog

ユーザーが項目を指定しない場合は、--item パラメーターを省略して、診断対象の全 7 セクションを実行します。


API 呼び出しの手順を手動で確認する場合は、references/manual-workflow.md を参照してください(スクリプトが使用できない場合にのみ使用します)。


レポート出力形式のテンプレート(テキストと HTML/ECharts のレイアウト仕様)については、references/report-format.md を参照してください(レポートのスタイルを調整する場合のみ参照します)。


参考資料とスクリプト

  • scripts/health-inspect.py — ワンコマンド診断のメインスクリプト
  • scripts/find-instance-region.py — インスタンスのリージョンを自動検出
  • scripts/check-write-operation.sh — 書き込み操作の検出フック
  • config/metrics.json — アーキテクチャタイプごとのメトリクス設定
  • references/manual-workflow.md — API 呼び出しの手動手順
  • references/report-format.md — 診断レポートの出力形式仕様
  • references/ram-policies.md — RAM 権限ポリシーと設定ガイド
  • references/cli-installation-guide.md — Aliyun CLI のインストールと設定ガイド

コメント