aiyiyi121/sxdevops

SxDevOps 是一个面向真实运维现场的开源智能运维 Agent 平台。它把 CMDB、可观测性、事件中心、任务中心、工单审批、容器管理、RBAC 等平台能力组织成 Agent 可调用、可审计、可确认的运维工作流。

SxDevOps — それは何ですか

SxDevOps は、AIエージェントを実際のIT運用("运维")に導入するためのオープンソースプラットフォームです。モットーは "Think before acting, act with evidence"(行動する前に考え、証拠を持って行動せよ)です。これはチャットボットではなく、分散した運用ツールを1つの制御されたワークフローに変えるシステムです:状況を見る → 証拠を見つける → システムに尋ねる → アクションを確認する。

解決する問題

従来の運用では、情報とアクションが断片化されています:

  • アラートは赤い点として表示されますが、ログ、トレース、最近の変更は他のシステムに存在します。
  • リリース、承認、タスク結果、主要な操作がページごとに散らばっており、事後分析のコストが高くなります。
  • 巡回、バッチコマンド、スクリプトテンプレート、ホスト権限が切り離されています。
  • トラブルシューティングの経験は個人の頭の中にあり、再利用されません。

SxDevOpsは、これらの断片を1つのチェーンにまとめます:証拠のための可観測性、レビューのためのイベントセンター、アクションのためのタスクセンター、そして理解・計画・構造化出力のためのAIOps。

コアモジュール

モジュール 機能
CMDB 資産台帳、ビジネスリソースツリー、同期/オンボーディング、容量レベル、ガバナンス、トポロジー、タスクとリソースの明示的なリンク
AIOps Agent LangGraphオーケストレーション、自然言語フォレンジック、再利用可能なスキル、タスクドラフト、人間の確認、実行監査、アクション後の復旧検証
可観測性 プラットフォーム概要、システムステータス、メトリッククエリ、ログ検索、トレース、Grafanaダッシュボード、データソース管理
イベントセンター 障害イベントの特定、主要操作の記録、イベントソース統合、操作監査、システム/環境/アプリ/時間によるフィルタリング
タスクセンター ホストタスク、バッチコマンド、スクリプトテンプレート、リソースグループ、タスクドラフト、実行履歴、スケジュールタスク
チケットシステム アプリリリース、承認フロー、SQL監査、トランザクションチケット、変更履歴
コンテナ管理 Kubernetes/Dockerワークベンチ、リソースとYAMLの事前チェック、スコープ認可、容量、インタラクティブターミナル、履歴ログ
権限と監査 バックエンドAPI、フロントエンドルート、メニュー、ボタン、WebSocketシナリオ全体に均一に適用されるRBAC

エージェントの仕組み

これは「ユーザーが尋ねる → LLMが自由に答える」ものではなく、制御されたパイプラインです:

  1. アクションルーター — リクエストを分類し(アラートの根本原因、ログクエリ、K8s診断、変更相関、タスク生成など)、リスクレベル、必要なコンテキスト、出力構造、確認ポリシーを宣言します。
  2. エージェントモード — 実行スタイルを選択します:Direct(単一の読み取り専用または明確なアクション)、ReAct(推論 → 行動 → 観察)、または Plan + ReAct(多段階の深いトラブルシューティング)。
  3. プリフライト — 書き込み、生成、実行の前に:権限チェック、リスク評価、依存関係チェック、不足パラメータの補完、ロールバック準備。失敗した場合は、フォームを返すか、不足情報を尋ねます。
  4. スキル / SOP — 証拠チェックリスト、クエリルール、出力形式、安全境界を制約するドメイン機能パッケージ。
  5. MCP / ツールレジストリ — プラットフォームと外部システムを管理可能なツールとしてラップします。最終的な使用可能ツールセット = スキルツール依存関係 ∩ MCP可用性 ∩ ユーザーRBAC ∩ アクションセキュリティポリシー。
  6. 構造化された事実 — ログ、メトリック、トレース、アラート、イベント、実行結果。
  7. 2段階の回答形成 — 結論、証拠、リスク、推奨アクション。
  8. 保留中のアクション — 書き込み/実行アクションは保留中の確認となり、ユーザーが確認した後にのみプラットフォームAPIが実行します(RBAC、パラメータサニタイズ、タイムアウト制御付き)。
  9. フィードバックループ — 結果はタスクセンター、イベントセンター、監査証跡に戻されます。

ガバナンス原則:

  • プラットフォームAPIが唯一の実行境界です。モデルは理解し、計画し、候補パラメータを生成しますが、バックエンドをバイパスしてリソースに触れることはできません。
  • 読み取り専用の診断は直接事実を返すことができますが、生成/書き込み/実行アクションはプリフライト → 確認 → 実行を経る必要があります。
  • フロントエンドの権限表示はUXに過ぎず、バックエンドのRBACが真のセキュリティ境界です。
  • すべてが監査されます:セッション、ツール呼び出し、プリフライトチェック、保留中のアクション、実行結果、主要イベント。

典型的なシナリオ

「本番環境の注文センターの異常を分析する」 — 従来はアラートプラットフォーム、ログセンター、トレースシステム、リリース記録の間を手動で行き来する必要がありました。SxDevOpsでは、エージェントがそれらをチェーン化します:ユーザーが自然言語で尋ねる → エージェントがアラート/ログ/トレース/イベント/タスクツールを選択 → バックエンドがRBACとタイムアウト制御を備えたホワイトリストに対してツール呼び出しを実行 → プラットフォームが構造化された証拠を集約 → スキルが結論、証拠、リスク、推奨アクションを出力 → 検査やコマンド実行が必要な場合、タスクドラフトが生成され、ユーザー確認後にのみタスクセンターに入ります → 結果がイベントセンターと監査証跡に書き戻されます。

v2のハイライト

  • CMDB:統合された資産/リソースツリー/容量/同期/ガバナンス。タスクセンターはCMDB資産を明示的にリンク。トポロジーは正確なスコープと1〜3ホップの隣接ノードをサポート。
  • AIOps/LangGraph:デフォルトのチャットは永続的なグラフオーケストレーションを使用。段階的なフォレンジック、ツールループ、タスクドラフト、回答修正。独立したワーカー、チェックポイント復旧、リース引き継ぎ、ノード監査。アクション後のアラート復旧検証。
  • コンテナ管理:統合されたKubernetes/Dockerワークベンチ。YAMLドライランの事前チェック。スコープ認可。インタラクティブターミナル。カーソルベースのページング付き履歴ログ。
  • UX:3つのテーマ(ライト、チャコール、ダークブルーグレー)。中央集権的なサイドバーナビゲーション。サイト名、アイコン、メニュー順序のシステム設定。

技術スタック

  • バックエンド:Django REST framework, Channels, Daphne
  • エージェントオーケストレーション:LangGraph。PostgreSQL/MySQL/SQLiteのチェックポイント。独立したワーカーを持つデータベースベースのタスクキュー
  • フロントエンド:Vue 3, Vue Router, Pinia, Element Plus, ECharts, Vite
  • データベース:PostgreSQL 16(デフォルト・推奨)、MySQL 8(オプション)、SQLite(ローカルテスト用)
  • キャッシュ/リアルタイム:Redis, Channels Redis
  • 外部統合:Kubernetes API, Docker, SSH, Prometheus/Grafana, SkyWalking, Tempo, Jaeger, Zipkin, Loki/ELK/SLS

クイックスタート

Docker (v20.10+, Compose V2) が必要です。リポジトリのルートから:

sh start.sh        # Linux/macOS
.\start.cmd       # Windows

スクリプトはシークレットの生成と保存、イメージのビルド、アプリ + PostgreSQL + Redis + CMDBスケジューラ + AIOpsワーカーの起動、DBマイグレーションを実行します。初回実行時に admin パスワードの設定のみ求められます(手動での .env 作成は不要)。その後 http://localhost:8000/login にアクセスし、ユーザー名 admin、設定したパスワードでログインします。固定のデフォルトパスワードはありません。デモデータはデフォルトでオフです。同じコマンドを再実行すると設定とアカウントが保持されます。Kubernetesデプロイも python3 k8s/deploy.py <image> を通じてサポートされています。

正直な制限事項

  • 処分検証はアラートの復旧が「観察された」ことを示すだけであり、因果関係やビジネス全体の健全性を証明するものではありません。
  • 完全なバックエンドテストスイートにはまだ既知の失敗があります。部分的なテスト合格は完全なスイートの結果の代わりにはなりません。
  • このプロジェクトはMITライセンスです:帰属表示が必要で保証なしで、自由に使用、変更、配布、商用利用が可能です。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト