Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
graph-go — シンプルなノードとグラフ | Kitploit
ツール/GitHubGitHub/guilherme-grimm/graph-go
クラウドインフラストラクチャセキュリティコンテナセキュリティネットワークマッピング構成監査DevSecOpsデータベースセキュリティログ分析
GitHubguilherme-grimm/graph-go

graph-go

シンプルなノードとグラフ

リポジトリを見る
1245211ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

graph-go

インフラを可視化。設定不要。

graph-go をスタックに向けるだけで、すべてのデータベース、テーブル、サービス、ストレージバケットのライブでインタラクティブなマップを取得できます。リアルタイムのヘルスモニタリング付き。

License: AGPL v3 graph-go デモ


graph-go は CLI ファーストのインフラマッパーです。Docker デーモンに接続し、実行中のコンテナを検査し、データベースやストレージサービスをプローブすることで、インフラを自動検出します。UI はバックエンドによって提供され、バックエンドの状態をリアルタイムに反映します。手動のインベントリは不要です。

機能詳細
自動検出Docker コンテナと Kubernetes クラスターからインフラを検出します。手動のインベントリは不要です。
KubernetesNamespace、Deployment、StatefulSet、DaemonSet、Pod、Service — インフォーマーベースのリアルタイム監視に対応
Docker実行中のコンテナを分類、認証情報を抽出、Docker イベントを監視、graphgo.* ラベルを尊重してタイプ/DSN/ノードタイプ/名前の上書きやコンテナの無視を可能に
PostgreSQLテーブル、外部キーリレーション、スキーマトポロジ
MongoDBデータベースとコレクション
MySQLテーブル、外部キーリレーション
Redisキースペースとキーの分布
Elasticsearchインデックス、クラスターヘルス、シャードステータス
S3 / MinIOバケットとトップレベルのプレフィックス
HTTP サービスヘルスエンドポイント、サービス間の依存関係マッピング
リアルタイムヘルスWebSocket による5秒ごとのライブステータス更新
インタラクティブグラフスイムレーンレイアウト、名前空間グループコンテナ、パン/ズーム、タイプ/ヘルスによるフィルター、ノード検索

Docker ラベル

graph-go は限られた graphgo.* コンテナラベルのセットを尊重します(制御したい任意のコンテナに設定できます)。

ラベル効果
graphgo.ignore=trueこのコンテナを完全にスキップ
graphgo.type=postgresアダプタータイプを強制(postgres、mongodb、mysql、redis、elasticsearch、s3、http)
graphgo.dsn=...接続文字列を注入(postgres/mysql の場合は DSN、mongodb の場合は URI、それ以外は dsn にフォールバック)
graphgo.node-type=gatewayビジュアルノードタイプを上書き(service、gateway、auth、api、queue、cache)
graphgo.name=...グラフに表示されるノード名と、ノードID/ログで使用される名前を上書き

これらを使用して、誤分類されたコンテナを救出したり、カスタムDSNを指定したり、コンテナを削除せずにグラフから非表示にしたりできます。


クイックスタート — 30秒で試す

CLI でシード済みデモスタックを起動します。これは graph-go を現実的な環境で最も早く体験でき、初めてのユーザーに推奨されるオンボーディングパスです。

git clone https://github.com/guilherme-grimm/graph-go.git
cd graph-go
go run ./cmd/app demo

http://localhost:8080 を開きます。このコマンドは Docker Compose 経由でフォアグラウンドで実行されます。Ctrl+C でセッションを停止します。

初回実行時は、コールドマシンでは Docker がベースイメージをプルし、ローカルのデモイメージをビルドする必要があるため、数分かかることがあります。2回目以降ははるかに高速です。

デモスタックは、ホストの以下のポートが空いていることを前提としています: 8080、5432、27017、9000、9001。

明示的に後片付けが必要な場合:

docker compose -f docker-compose.demo.yml down

自身のスタックに対して実行

1つのコンテナ、1つのポート。Docker ソケットを読み取り専用でマウントするだけで、graph-go がホスト上で実行中のすべてを自動検出します。

docker run -d -p 8080:8080 \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  ghcr.io/guilherme-grimm/graph-go:latest

graph-go は Docker ソケットからの読み取りのみを行います。:ro フラグでこれを強制しています。必ず指定してください。

http://localhost:8080 を開きます。自動検出は、設定ファイルなしで Docker コンテナと(kubeconfig またはクラスター内サービスアカウントが存在する場合)Kubernetes リソースを処理します。

Docker/Kubernetes の外部にあるサービス(リモートデータベース、マネージドクラウドサービス)については、設定ファイルをマウントしてください — 設定 を参照。


プリビルドバイナリ

単一の自己完結型バイナリ。UI は埋め込まれていますが、エントリポイントは依然として CLI です。

# Linux amd64 (GitHub CLI が必要。他のプラットフォームは Releases を参照)
gh release download --repo guilherme-grimm/graph-go --pattern 'graph-go_*_linux_amd64.tar.gz' --clobber
tar xzf graph-go_*_linux_amd64.tar.gz
./graph-go serve   # または単に `./graph-go` — 同じ動作

http://localhost:8080 を開きます。他のプラットフォームは Releases ページ を参照してください。


コマンド

コマンド説明
graph-go demoリポジトリからシード済みの Docker Compose デモスタックを起動し、その出力をフォアグラウンドに表示します。
graph-go serve自動検出とライブ更新を伴う HTTP サーバーを起動します(デフォルト — 引数なしで実行した場合と同じ)。
graph-go scan検出を1回実行し、結果を JSON として stdout に出力します。jq にパイプしたり、CI チェックや一度きりのエクスポートに便利です。
graph-go versionバージョン、コミット、ビルド日を表示します。
graph-go --health-checkローカルの /health にアクセスし、終了コード 0/1 を返します。コンテナの HEALTHCHECK で使用されます。インタラクティブ用途ではありません。

グローバルフラグ(すべてのサブコマンドに適用): --config、--log-level、--log-format。各コマンドの全オプションは graph-go <command> --help で確認できます。

典型的な流れ:

  1. graph-go demo で現実的なローカルウォークスルーを体験。
  2. graph-go serve で自身のインフラに対して実行。
  3. graph-go scan で一度きりの自動化、エクスポート、CI チェック。

ポート

ポート用途
8080graph-go(UI + API + WebSocket — 本番用)
5173Vite 開発サーバー(開発時のみ — CONTRIBUTING.md を参照)
9001MinIO コンソール(デモスタックのみ)

設定

自動検出が基本パスです。Docker ソケットをマウントするか、Kubernetes クラスター内で実行するだけで、graph-go は 設定ファイル不要 でインフラを検出します。

YAML 設定(conf/config.yaml)は、検出経由で到達できないサービス(リモートデータベース、マネージドクラウドサービス、外部エンドポイント)のための避難ハッチとしてのみ使用してください。完全なスキーマは conf/config.sample.yaml を参照してください。すべてのアダプターと設定ブロック(server、docker、kubernetes、connections)の例があります。

上記の Docker 実行で設定ファイルを使用する場合:

docker run -d -p 8080:8080 \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  -v $(pwd)/conf/config.yaml:/app/conf/config.yaml:ro \
  ghcr.io/guilherme-grimm/graph-go:latest

許可された使用のみ: graph-go は、自分が所有しているか、アクセス許可があるインフラを可視化するためのものです。許可なくシステムに向けてはいけません。


アーキテクチャ概要

バックエンド (Go)

                          ┌─────────────────────────────────────┐
                          │         Discoverer Interface         │
                          │  Discover() · Watch() · Close()     │
                          └──────────┬──────────┬───────────────┘
                                     │          │
                          ┌──────────▼──┐  ┌────▼──────────────┐
                          │   Docker    │  │   Kubernetes       │
                          │  Discoverer │  │   Discoverer       │
                          │ (containers,│  │ (informers, pods,  │
                          │  classify,  │  │  deployments,      │
                          │  events)    │  │  services, health) │
                          └──────┬──────┘  └────┬──────────────┘
                                 │               │
                          ┌──────▼───────────────▼──────┐
                          │  Parallel Discovery + Merge  │
                          │  (concatenate ServiceInfo)   │
                          └──────────────┬──────────────┘
                                         │
Config (YAML) ──→ YAML Merge ───────────▶│
                                         ▼
                          ┌─────────────────────────────┐
                          │     Adapter Registry         │
                          │  ├─ PostgreSQL  → Tables + FK│
                          │  ├─ MongoDB    → Collections │
                          │  ├─ MySQL      → Tables + FK │
                          │  ├─ Redis      → Keyspaces   │
                          │  ├─ Elasticsearch → Indices   │
                          │  ├─ S3         → Buckets      │
                          │  └─ HTTP       → Health + deps│
                          │                               │
                          │  + Topology (K8s nodes/edges) │
                          └──────────────┬───────────────┘
                                         ▼
                          Graph Model (Nodes + Edges)
                                         ▼
                          REST API + WebSocket (Real-time)

主要コンポーネント:

  • Discoverer インターフェース: すべてのディスカバリバックエンド(Discover, Watch, Close)に対する統一契約。Docker と Kubernetes は並列実行され、結果は連結されます。
  • Docker ディスカバリ: コンテナを検査し、イメージを分類し、環境変数から認証情報を抽出し、Docker イベントを監視してライブトポロジ変更に対応します。
  • Kubernetes ディスカバリ: client-go のインフォーマーを使用し、デバウンスされたイベント処理を行います。Namespace、Deployment、StatefulSet、DaemonSet、Pod、Service を検出し、ヘルスマッピングを行います。
  • アダプター: Adapter インターフェースを実装してデータベースやストレージサービスをプローブします。
  • レジストリ: アダプターとトポロジセットを管理し、サービスレベルの親ノードを作成し、グラフデータを集約します。
  • キャッシュ: 30秒のTTLとシングルフライトパターンを採用し、輻輳を防止します。
  • WebSocket: 5秒ごとにヘルス更新をストリーミングします。

フロントエンド (React + TypeScript)

ツールをダウンロード