sre-runbooks について
sre-runbooks は、SRE チームや AI エージェント向けに、インシデント対応と保守の標準手順を提供するスキルです。手順書の検索・実行、チェックリスト作成、アラート連動、バージョン管理に対応します。
主な機能
- 01ID、種類、キーワードで手順書を検索
- 02手順書のステップを実行
- 03環境別チェックリストの作成
- 04監視アラートから手順書を起動
- 05手順書のバージョン管理
活用シーン
- 01障害発生時に対応手順を確認
- 02定期保守のステップを実行
- 03環境に合わせたチェックリストを準備
- 04監視アラートへ一貫して対応
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill sre-runbooksインストール後、Claude Code で/sre-runbooksを入力して読み込まれたか確認します。
詳細
sre-runbooks
目的
このスキルは、DevOps 環境でのインシデント管理やシステム保守に使用する、標準化された SRE ランブックを提供します。事前に定義された手順にアクセスし、障害やアップグレードなどの問題に一貫して対応できるようにします。
使用するタイミング
アクティブなインシデントの対応中にすばやく参照したい場合、定期的な保守作業を行う場合、新しい SRE チームメンバーを受け入れる場合に、このスキルを使用します。ダウンタイム、スケーリングの問題、コンプライアンスチェックが発生している本番環境で、ベストプラクティスに従うために活用します。
主な機能
- ID、種類、キーワード(例:「障害」や「データベース」)でランブックを取得します。
- スクリプトの実行や API 呼び出しなど、ランブックの自動化された手順を実行します。
- 特定の環境向けに、ランブックテンプレートに基づくカスタムチェックリストを生成します。
- 監視ツールと連携し、アラートを受けてランブックを起動します。
- 変更を経時的に追跡するための、ランブックのバージョン管理をサポートします。
使用パターン
sre-cli ツール、または AI エージェントのコードからの API 呼び出しを通じて、このスキルを呼び出します。使用前に、認証用の環境変数 $SRE_API_KEY を必ず設定してください。CLI では、認証チェックをコマンドの前に付けます。コードでは、スキルをモジュールとしてインポートし、必要なパラメーターを指定して関数を呼び出します。例:まずランブックが存在することを確認し、その後、try-catch ブロック内で実行します。
一般的なコマンド/API
直接アクセスするには sre-cli を、プログラムから連携するには REST API を使用します。すべてのコマンドで、環境変数 $SRE_API_KEY を設定する必要があります。
-
CLI コマンド:ランブックの一覧表示
sre-cli runbook list --filter sre --output json
SRE タグが付いたランブックの JSON リストを取得します。「devops」などのタグには--filterを使用します。 -
CLI コマンド:特定のランブックの取得
sre-cli runbook get --id 456 --format markdown
ランブック ID 456 を Markdown 形式で取得します。YAML 形式で出力するには、--format yamlを追加します。 -
API エンドポイント:ランブックの取得
GET https://api.openclaw.com/sre-runbooks/v1/runbooks/{id}
ヘッダー:Authorization: Bearer $SRE_API_KEY
レスポンス:ランブックの詳細を含む JSON オブジェクト。例:{"id": 456, "steps": ["Step 1: Check logs"]}。 -
API エンドポイント:ランブックの手順の実行
POST https://api.openclaw.com/sre-runbooks/v1/runbooks/{id}/execute
ボディ:{"step": 1, "params": {"environment": "prod"}}
本番環境向けのパラメーターを使用して、ランブックの最初の手順を実行します。
入力には JSON または YAML の設定形式を使用します。設定ファイルの例(runbook-config.json):
{
"id": "789",
"environment": "dev",
"overrides": {"timeout": 300}
}
連携に関する注意事項
コードベースに依存関係として追加し、AI エージェントのワークフローにこのスキルを組み込みます。認証には $SRE_API_KEY を使用し、デプロイスクリプトで環境変数として設定します。たとえば、Node.js アプリでは npm install sre-runbooks-sdk でインストールし、次のようにインポートして初期化します。
const sreSDK = require('sre-runbooks-sdk');
sreSDK.init({ apiKey: process.env.SRE_API_KEY, baseUrl: 'https://api.openclaw.com' });
指数バックオフによる再試行ロジックを実装して、レート制限(例:100 リクエスト/分)にエージェントが対応できるようにしてください。CI/CD では、Web フックを使用して Git イベント時に起動するよう、パイプラインにランブックを組み込みます。
エラー処理
スキルの呼び出しは、必ずエラーハンドラーで囲んでください。CLI コマンドでは終了コードを確認し、標準エラー出力を解析します。API 呼び出しでは、HTTP エラー(認証失敗時の 401、ランブックが見つからない場合の 404 など)を捕捉します。Python での例:
import sre_runbooks
try:
response = sre_runbooks.get_runbook(id=123, api_key=os.environ['SRE_API_KEY'])
except sre_runbooks.AuthError:
log_error("Authentication failed; check $SRE_API_KEY")
except sre_runbooks.NotFoundError:
fallback_to_default_runbook()
よくある問題:無効な API キーは 401 を返します。再認証を促すように処理してください。レート制限エラー(429)が発生した場合は、再試行の前に 5 秒待機する必要があります。
具体的な使用例
例1:データベース障害に対処する
まず、関連するランブックを検索します:sre-cli runbook get --id 123。次に、手順を実行します:
steps = sre_runbooks.execute(id=123, params={"db_type": "postgres"})
これにより、障害対応手順が取得・実行され、確認用のログが出力されます。
例2:定期的なシステムメンテナンスを実施する
API を使用して、メンテナンス用ランブックをスケジュールします:
POST https://api.openclaw.com/sre-runbooks/v1/runbooks/456/schedule
Body: {"time": "2023-10-01T02:00:00Z", "params": {"systems": ["web", "cache"]}}
これにより更新が自動化され、システムを停止することなくパッチを適用できます。
グラフの関係
- 関連:devops-tools(共通の DevOps ユーティリティ用)
- 依存:monitoring-skills(アラート連携用)
- クラスター:devops-sre(このスキルの主要クラスター)