robusta-dev について
robusta-dev は、Kubernetes のアラート対応ツール Robusta の導入、設定、トラブルシューティングを案内するスキルです。プレイブックによる情報補完や修復、通知先の設定も扱います。
主な機能
- 01インストールと設定のガイド
- 02プレイブックのトリガーとアクションのリファレンス
- 03アラート情報の補完と修復
- 04通知先の設定
- 05アラート配信のトラブルシューティング
活用シーン
- 01Kubernetes クラスターへの Robusta の導入
- 02クラッシュループアラートへのログ追加
- 03Slack または PagerDuty へのアラート送信
- 04発火しないアラートの調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ julianobarbosa/ claude-code-skills --skill robusta-devインストール後、Claude Code で/robusta-devを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/Actions.mdInstallation.mdPlaybooks.mdSinks.mdTriggers.mdTroubleshooting.mdWorkflows/ConfigurePlaybooks.mdConfigureSinks.mdInstall.mdTroubleshoot.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_alert | Prometheus/AlertManager のアラート発生時に実行 |
on_pod_create | Pod の作成時 |
on_pod_update | Pod の更新時 |
on_deployment_update | デプロイメントの変更時 |
on_schedule | Cron ベースのスケジュール実行 |
on_kubernetes_warning_event | K8s の警告イベント発生時 |
主なアクション
| アクション | 目的 |
|---|---|
logs_enricher | アラートに Pod のログを追加 |
pod_events_enricher | K8s イベントを追加 |
node_cpu_enricher | CPU メトリクスを追加 |
node_memory_enricher | メモリーメトリクスを追加 |
deployment_status_enricher | デプロイメント情報を追加 |
delete_pod | Pod を削除して自動修復 |
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
プレイブックの構成要素
- トリガー - プレイブックを起動するイベント
- アクション - トリガー発生時に行う処理(情報の付加、修復)
- シンク - 結果の送信先
スマートグルーピング
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- よくある問題と解決方法
外部リソース
- 公式ドキュメント
- GitHub
- Robusta Platform(SaaS UI)
注意点
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 ではなくボットモードを使用していることを確認してください。
コメント
Markdown 対応