mcpField
R
robusta-dev

robusta-dev

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

robusta-dev について

robusta-dev は、Kubernetes のアラート対応ツール Robusta の導入、設定、トラブルシューティングを案内するスキルです。プレイブックによる情報補完や修復、通知先の設定も扱います。

主な機能

  1. 01インストールと設定のガイド
  2. 02プレイブックのトリガーとアクションのリファレンス
  3. 03アラート情報の補完と修復
  4. 04通知先の設定
  5. 05アラート配信のトラブルシューティング

活用シーン

  1. 01Kubernetes クラスターへの Robusta の導入
  2. 02クラッシュループアラートへのログ追加
  3. 03Slack または PagerDuty へのアラート送信
  4. 04発火しないアラートの調査

インストール

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

$npx skills add https://github.com/julianobarbosa/claude-code-skills --skill robusta-dev

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

同梱ファイル

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

references/
Actions.md
Installation.md
Playbooks.md
Sinks.md
Triggers.md
Troubleshooting.md
Workflows/
ConfigurePlaybooks.md
ConfigureSinks.md
Install.md
Troubleshoot.md

詳細

RobustaDev

Robusta の包括的なガイドです。プレイブック、AI による調査、自動修復を使って、Kubernetes のアラートを実行可能なインサイトに変換する SRE エージェントです。

クイックリファレンス

コンポーネント目的
プレイブックアラートへの対応を定義するルールエンジン
トリガープレイブックの実行を開始するイベント
アクション修復手順と情報の付加
シンク通知先(Slack、Teams、PagerDuty など)

ワークフローの振り分け

ワークフロートリガーファイル
Install「robusta をインストール」、「robusta をデプロイ」Workflows/Install.md
ConfigurePlaybooks「プレイブックを作成」、「プレイブックを設定」Workflows/ConfigurePlaybooks.md
ConfigureSinks「slack をセットアップ」、「通知を設定」Workflows/ConfigureSinks.md
Troubleshoot「robusta が動作しない」、「アラートが発火しない」Workflows/Troubleshoot.md

インストールのクイックスタート

前提条件
  • Kubernetes クラスター
  • Helm 3.x がインストール済み
  • kubectl の設定済み
一括インストール(Robusta + Prometheus)
# Generate configuration
pipx run robusta-cli gen-config --enable-prometheus-stack

# Or using Docker
curl -fsSL -o robusta https://docs.robusta.dev/master/_static/robusta
chmod +x robusta
./robusta gen-config --enable-prometheus-stack

# Install via Helm
helm repo add robusta https://robusta-charts.storage.googleapis.com
helm repo update
helm install robusta robusta/robusta \
  -f ./generated_values.yaml \
  --set clusterName=<YOUR_CLUSTER_NAME>

# Verify installation
kubectl get pods -A | grep robusta
スタンドアロンインストール(既存の Prometheus を使用)
pipx run robusta-cli gen-config
helm install robusta robusta/robusta -f ./generated_values.yaml

プレイブックの構造

# Example playbook in generated_values.yaml
customPlaybooks:
  - triggers:
      - on_prometheus_alert:
          alert_name: KubePodCrashLooping
    actions:
      - logs_enricher: {}
      - pod_events_enricher: {}
    sinks:
      - slack
トリガーの種類
トリガー説明
on_prometheus_alertPrometheus/AlertManager のアラート発生時に実行
on_pod_createPod の作成時
on_pod_updatePod の更新時
on_deployment_updateデプロイメントの変更時
on_scheduleCron ベースのスケジュール実行
on_kubernetes_warning_eventK8s の警告イベント発生時
主なアクション
アクション目的
logs_enricherアラートに Pod のログを追加
pod_events_enricherK8s イベントを追加
node_cpu_enricherCPU メトリクスを追加
node_memory_enricherメモリーメトリクスを追加
deployment_status_enricherデプロイメント情報を追加
delete_podPod を削除して自動修復
node_bash_enricherノード上で bash コマンドを実行

シンクの設定

Slack
sinksConfig:
  - slack_sink:
      name: main_slack
      slack_channel: alerts
      api_key: "<SLACK_BOT_TOKEN>"
Microsoft Teams
sinksConfig:
  - ms_teams_sink:
      name: teams_alerts
      webhook_url: https://outlook.office.com/webhook/...
PagerDuty
sinksConfig:
  - pagerduty_sink:
      name: pagerduty
      api_key: your-integration-key
Webhook(汎用)
sinksConfig:
  - webhook_sink:
      name: custom_webhook
      url: https://your-endpoint.com/alerts

例

例 1:Prometheus とともに Robusta をインストール

User: "Install Robusta on my AKS cluster"
-> Generate config with gen-config --enable-prometheus-stack
-> Add Helm repo and install with cluster name
-> Verify pods are running

例 2:クラッシュループ情報を付加するプレイブックを作成

User: "Add pod logs to CrashLoopBackOff alerts"
-> Create playbook with on_prometheus_alert trigger
-> Add logs_enricher and pod_events_enricher actions
-> Configure Slack sink for notifications

例 3:Slack 通知を設定

User: "Send Robusta alerts to #k8s-alerts Slack channel"
-> Add slack_sink to sinksConfig
-> Set channel name and API key
-> Optionally filter by severity or namespace

例 4:見つからないアラートをデバッグ

User: "Robusta isn't sending alerts to Slack"
-> Check robusta-runner pod logs
-> Verify sink configuration in generated_values.yaml
-> Test with manual trigger: robusta playbooks trigger

主な概念

アラートのフロー
Prometheus Alert -> AlertManager -> Robusta -> Playbook -> Actions -> Sinks
プレイブックの構成要素
  1. トリガー - プレイブックを起動するイベント
  2. アクション - トリガー発生時に行う処理(情報の付加、修復)
  3. シンク - 結果の送信先
スマートグルーピング

Robusta は Slack のスレッドを使って関連するアラートをグループ化し、通知の過剰送信を減らします。

AI による調査(HolmesGPT)

Robusta Pro またはセルフホスト可能な HolmesGPT で利用できる、オプションの AI による根本原因分析です。

リファレンスドキュメント

  • references/Installation.md - 詳細なインストールガイド
  • references/Playbooks.md - プレイブックの完全なリファレンス
  • references/Triggers.md - すべてのトリガーの種類
  • references/Actions.md - 利用可能なアクション
  • references/Sinks.md - シンクの設定
  • references/Troubleshooting.md - よくある問題と解決方法

外部リソース


注意点

  • customPlaybooks の順序が重要です。同じトリガーでは最初に一致したものが優先されます: 先頭に alert_name: フィルターのない包括的な on_prometheus_alert を置くと、すべてのアラートがそこで処理され、後続の特定アラート向けプレイブックは実行されません。特定アラート向けのプレイブックを先に、汎用のものを最後に置いてください。
  • slack_sink の api_key はボットトークン(xoxb-)であり、Webhook URL ではありません: ここに Webhook URL を貼り付けても、何も通知されないまま失敗します。Robusta は「auth failed」を一度ログに記録した後、処理を停止します。ボットモードでは slack_channel と api_key を使用するか、Webhook 配信には別のシンクタイプに切り替えてください。
  • delete_pod による自動修復にはレート制限がありません: delete_pod アクションを使用する、設定を誤った CrashLoopBackOff プレイブックを、頻繁に状態が変化するデプロイメントに対して実行すると、ポッドの削除が過剰に繰り返され、サブネットのポッド IP が枯渇します。必ずポッド状態のトリガーではなく、firing フィルターを指定した on_prometheus_alert と組み合わせてください。
  • gen-config --enable-prometheus-stack は kube-prometheus-stack 全体をインストールします: すでに Prometheus が稼働しているクラスターで実行すると、Prometheus が 2 つになり、互いをスクレイピングします。既存の監視環境に統合する場合は、通常の gen-config(フラグなし)を使用してください。
  • ms_teams_sink の Webhook URL は 2024 年に非推奨となり、コネクタは廃止されます: 既存の Webhook URL はしばらく動作した後、410 を返すようになります。廃止期限を迎える前に、Power Automate ワークフローまたは新しい Teams シンク形式に移行してください。
  • スマートグルーピングは Slack のスレッドを使用します。チャンネルでスレッド機能が無効になっている場合や、Webhook のみを使用している場合は機能しません: アラートは投稿されますが、「グループ」は個別のメッセージに分かれ、通知を防ぐはずの機能が、かえって通知を大量に発生させます。チャンネルでスレッド機能が有効になっていること、また Webhook ではなくボットモードを使用していることを確認してください。

コメント