🏠 ホーム ニュース 📖 解説記事 📚 トピック解説 🏷️ タグ一覧 ℹ️ About
ツール
💰 API料金計算機 NEW
🔍 記事を検索
カテゴリ
📡 RSSフィード
Follow
X (Twitter) 🧵 Threads
🔧 ツール
💰API料金計算機
トピック
🧠 Claude Code 🤖 AIエージェント 🎵 AIコーディング / Vibe Coding 🔌 MCP(Model Context Protocol) 🔍 RAG & ナレッジシステム 💬 LLM / ローカルAI 🔒 セキュリティ ⚙️ DevOps & 自動化 💰 Claude API & 料金 🎨 UI生成 & デザインシステム
ニュース一覧 🏷️タグから探す
Subscribe
📡 RSSフィード
ホーム tool 2026.05.02

Scanopy完全解説:ネットワーク図を自動生成・自動更新するセルフホストOSS

scanopy/scanopy
🌐
Scanopy完全解説:ネットワーク図を自動生成・自動更新するセルフホストOSS - AIツール日本語解説 | AI Heartland
手書きの構成図はインフラ変更のたびに陳腐化する。Scanopyはネットワークを能動的にスキャンし、サービス・依存関係・トポロジを自動可視化するOSSとして、自宅ラボから企業オンプレまで広く支持を集めている。

「最新のネットワーク構成図を出してください」と言われて即答できるインフラチームはほとんどない。Visioやdraw.ioで手書きされた図はインフラ変更のたびに陳腐化し、半年後には実態と乖離する。Scanopyはこの問題を根本から解決するセルフホスト型OSSだ。Rust製のスキャナーがネットワークを能動的に走査し、L2(物理)・L3(論理)・Workloads・Applicationsの4視点で「いま実際に動いているもの」を自動可視化する。AGPL-3.0、★4.8k、Docker Compose一発で起動できる手軽さが評価され、自宅ラボから企業オンプレまで広く支持を集めている。

この記事ではセルフホスト型ネットワーク可視化OSS Scanopyを解説します。AI時代の自動化ツール全体像についてはAI自動化ツール|ノーコードからコードまで2026年版の比較と選び方をご覧ください。

この記事のポイント

  • ScanopyはRust製エージェントレスのスキャナで、ネットワークを定期的に走査して「自己更新するトポロジ図」を生成するOSS(AGPL-3.0、★4.8k)
  • 230以上のサービス定義を内蔵し、Home AssistantからPostgreSQL、Dockerコンテナまで自動検出
  • L2/L3/Workloads/Applicationsの4ビュー可視化、SNMP・Docker連携、Confluence/SVG/Mermaidエクスポート対応

Scanopy logo

Scanopyとは何か:自己更新するネットワーク図というアプローチ

Scanopyは「Network diagrams that update themselves」をキャッチフレーズに掲げる、ネットワーク自動可視化のOSSだ。2026年4月時点で★4.8k、231フォーク、Rust(61.7%)+ Svelte(23.5%)+ TypeScript(9.9%)で実装されている。「インフラ図を書く」のではなく「インフラ図を取得する」発想に移行できる点が革新的だ。

従来のネットワークドキュメンテーションは次の問題を抱えていた。

Scanopyはこれらを「軽量デーモン1台で完結するエージェントレス・アーキテクチャ」で解決する。デーモンを1サブネットに配置すればポートスキャン・SNMP問い合わせ・サービスバナー検出を自動で行い、サーバー側のWebUIに集約してビジュアライズする。

設計思想:「lspciやnetstatの出力を、ネットワーク全体に拡張したらどうなるか」という発想に近い。インフラの「いまの状態」を能動的に可視化する“active observability”の系譜であり、Terravisionのように静的コードを描画する系統とは補完関係にある。

アーキテクチャ:エージェントレス×単一デーモン×4ビュー

Scanopyの構成は驚くほどシンプルだ。スキャナデーモンとサーバーUIの2コンポーネントで完結し、対象機器側には何もインストールしない。

flowchart LR A["対象ネットワーク
(VLAN A / B / C)"] -->|"ARP / ICMP / TCP / SNMP"| B["Scanopy Daemon
(Rust)"] B --> C["Scanopy Server
(Svelte+TS UI / Rust API)"] C --> D["Topology Store
(SQLite / Postgres)"] C --> E["WebUI
localhost:60072"] E --> F["L2 view"] E --> G["L3 view"] E --> H["Workloads view"] E --> I["Applications view"] C -->|"SVG / Mermaid
Confluence export"| J["外部ドキュメント"]

複数拠点ある場合は、各サブネットにデーモンを分散配置できる。VPN/オンプレ/クラウドが混在する環境でも、各セグメントの代表ホストにデーモンを置けば全体像が見える。

4つのビュー

ビュー 内容 想定ユーザー
L2(Physical) スイッチポート、物理結線、ARPテーブル NWエンジニア、配線担当
L3(Logical) サブネット、VLAN、ルーティング、ブリッジ NW設計、クラウド管理者
Workloads ベアメタル/ハイパーバイザ/コンテナ SRE、サーバー運用
Applications サービス・アプリ・依存関係 SRE、開発者、PM

「同じネットワークを4つのレイヤーで見られる」点がScanopy最大の強みだ。L2でケーブル配線図、L3でVPC構成、Workloadsでコンテナ密度、Applicationsで依存関係——同じデータから異なるストーリーが引き出せる。

230以上のサービス自動検出:何が見えるのか

Scanopyは内蔵の「サービス指紋(fingerprint)」データベースで、ポートスキャンとバナー応答からサービスを自動識別する。READMEで言及されている230以上の定義はカテゴリ別に整理されており、自宅ラボのHome Assistantから企業のOracle DBまで幅広い。

検出可能なサービスのカテゴリ別例

カテゴリ 代表的な検出対象
データベース PostgreSQL/MySQL/MariaDB/MongoDB/Redis/Elasticsearch
Web/LB Nginx/Apache/HAProxy/Traefik/Caddy
コンテナ Docker(Engine API)/Kubernetes API server/Portainer
自宅/NAS Home Assistant/Plex/Jellyfin/Synology DSM/TrueNAS
監視/ロギング Prometheus/Grafana/Loki/InfluxDB
エンタープライズ Active Directory/LDAP/Exchange/SMB
ネットワーク OpenWrt/pfSense/OPNsense/VyOS
開発支援 GitLab/Gitea/Jenkins/SonarQube

ホームラボ向けOSSと企業向けOSSの両方をカバーしているため、規模を問わず使える。検出ルールはYAMLでカスタム可能で、社内独自のサービスを追加することも難しくない。

クイックスタート:Docker Composeで2分起動

Scanopyの最短手順はDocker Composeだ。サーバー+デフォルトのスキャナデーモンが1コマンドで立ち上がる。

# docker-compose.yml をダウンロード
curl -O https://raw.githubusercontent.com/scanopy/scanopy/refs/heads/main/docker-compose.yml

# 起動
docker compose up -d

# ブラウザでアクセス
open http://localhost:60072

初期ログイン後、対象サブネットを登録するだけでスキャンが開始される。デフォルトではARP/ICMP/TCP top-1000ポートのスキャンが走り、数分〜十数分でトポロジが可視化される。

docker-compose.yml の構成例

公式が提供している構成は以下のような形(本記事執筆時点の構造を参考に整理)。

services:
  scanopy-server:
    image: scanopy/scanopy:latest
    container_name: scanopy-server
    restart: unless-stopped
    ports:
      - "60072:60072"
    environment:
      SCANOPY_DB_URL: sqlite:///data/scanopy.db
      SCANOPY_LOG_LEVEL: info
    volumes:
      - ./scanopy-data:/data

  scanopy-scanner:
    image: scanopy/scanner:latest
    container_name: scanopy-scanner
    restart: unless-stopped
    network_mode: host  # ホストNICでスキャンするためhostモード推奨
    environment:
      SCANOPY_SERVER_URL: http://scanopy-server:60072
      SCANOPY_TOKEN: ${SCANOPY_TOKEN}

network_mode: hostはARPやICMPでL2情報を取得するために重要だ。コンテナデフォルトのbridgeネットワークでは、対象セグメントのARPテーブルが取れず、L2ビューが空になる。

Proxmox/Unraid環境での導入

Scanopyは自宅ラボ層からの支持が厚く、Proxmox LXCテンプレートやUnraidコミュニティアプリも提供されている。Proxmoxの場合は次のスクリプトで自動セットアップできる(公式ヘルパースクリプト)。

# Proxmox helper script (要確認、実行前に内容を読むこと)
bash -c "$(wget -qLO - https://github.com/community-scripts/ProxmoxVE/raw/main/ct/scanopy.sh)"

UnraidユーザーはCommunity Appsから「Scanopy」を検索してインストールするだけで、テンプレート設定済みの状態で起動する。

使いこなし:実運用での効果と落とし穴

効果が大きいユースケース

注意すべき落とし穴

セキュリティ視点での「ネットワーク可視化=アタックサーフェス可視化」という発想は、サプライチェーンセキュリティ完全ガイドで扱う「攻撃面の最小化」とも通底する。Scanopyの結果を脆弱性管理プラットフォームと連動させると、相乗効果が高い。

類似ツールとの比較:Netbox/LibreNMS/NetAlertX/Terravisionとの違い

ネットワーク可視化/管理OSSは多数存在するが、Scanopyは「スキャンベースの自己更新」に特化している点で独自性がある。

ツール 取得方式 強み 弱み
Scanopy エージェントレス能動スキャン 自己更新、4ビュー、Rust製で軽量 スキャン頻度依存
Netbox 手動入力/API DCIM機能、ソース・オブ・トゥルース 手動更新が必要
LibreNMS SNMP受動/ポーリング メトリクス収集、長期実績 UIが古め、可視化はシンプル
NetAlertX(旧Pi.Alert) ARPスキャン中心 自宅ラボ向け、軽量 サービス検出が浅い
Terravision TerraformIaCを描画 コード=図のSSoT 実態(drift)は見えない

「インフラの理想(IaC)」と「インフラの実態(active scan)」は別の情報源で、両方持っておくのが理想だ。Terravisionが理想図、Scanopyが実態図として組み合わせると、driftを発見しやすい運用になる。

4ビューの実例:何がどう見えるか

公式リポジトリ配下に各ビューのスクリーンショットが用意されている。実際の見え方を理解する助けになる。

L2ビュー:物理結線とスイッチポート

L2ビューはスイッチポートと物理ケーブル接続を表示する。LLDP/CDPを使って隣接機器を辿るため、「どのスイッチのどのポートに何が刺さっているか」が一目でわかる。古い配線図と現実の差分を発見するときに最も役立つ。

L3ビュー:サブネットとVLAN

L3ビューではサブネット・VLAN・ルーティング関係を表示する。DMZと内部LANの境界、VPN経由の他拠点接続などが一画面で把握できる。クラウド管理者がオンプレ・クラウドハイブリッド環境を整理するときに有効だ。

Workloadsビュー:サーバーとコンテナ

Workloadsビューはベアメタル/VM/コンテナの実体を表示する。Dockerホストごとのコンテナ密度、Hyper-V/ESXiホストでのVM配置などが一覧化される。「このサーバー、何が動いていたっけ」が消える。

Applicationsビュー:サービス依存関係

Applicationsビューはサービス間の依存関係を可視化する。「Redisが落ちたら何が困るか」「DBへ書き込んでいるのは誰か」が依存マップから読み取れる。SREや障害対応の現場で価値が大きい。

実運用での監視・通知連携

Scanopyは可視化ツールとしてだけでなく、ネットワーク状態の変化検知にも活用できる。新規ホスト出現や予期せぬサービス公開を検知し、Webhookで通知できる。

# Webhook通知の設定例(REST API経由)
curl -X POST "http://localhost:60072/api/v1/notifications/webhook" \
  -H "Authorization: Bearer ${SCANOPY_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "slack-network-changes",
    "url": "https://hooks.slack.com/services/XXX/YYY/ZZZ",
    "events": ["host.discovered", "service.discovered", "host.disappeared"],
    "filters": {
      "subnet": "10.0.0.0/8"
    }
  }'

これにより「夜中に未知のホストが社内ネットワークに出現した」「想定外のSSHポートが開いた」といったイベントを即座に検知できる。シャドーITの発見やセキュリティ監査の自動化に効く運用だ。

エクスポートとAI連携:Mermaid/Confluence/LLM入力としての価値

Scanopyのもう一つの強みはエクスポート機能だ。SVG・Mermaid・Confluence形式での出力に対応しており、生成された図を社内Wikiに直接貼り付けたり、Markdown文書に組み込める。

# REST API経由でMermaid形式エクスポート
curl -X GET "http://localhost:60072/api/v1/topology/export?format=mermaid&view=l3" \
  -H "Authorization: Bearer ${SCANOPY_TOKEN}" \
  -o topology.mmd

さらに発展形として、出力したMermaidや構造化JSONをLLMの入力として渡すユースケースが2026年に注目を集めている。ChatGPTやClaudeに「このネットワーク構成のリスクを教えて」と聞かせれば、構成の弱点を指摘してもらえる。AI×インフラ可視化の最前線として、Scanopyのエクスポート機能は重要な接続点になる。

セキュリティ視点での活用:シャドーITとアタックサーフェス管理

CISO・セキュリティチーム視点でScanopyを見ると、「アタックサーフェスを継続的に把握する」用途で価値が大きい。社内ネットワーク内の未知ホストや非承認サービスは、シャドーITとなり攻撃の足がかりになる。

シナリオ Scanopyでできること
個人持ち込み機器の検知 新規MAC/新規ホスト出現を即座に通知
開発用に開けたままのポート発見 公開サービスの定期スキャンと差分検知
古いOS/脆弱バージョンの一覧化 バナーから検出されるバージョンを集計
ペネトレーションテストの事前情報 テスト前後の差分を自動取得
監査対応 「定期的にスキャンしている」エビデンス化

外部の脆弱性スキャナ(Faraday、OpenVAS等)と組み合わせれば、「検知→評価→対応」のループを内製で組める。AIエージェント運用が広がる現在では、エージェントが新規ホストを発見した瞬間に脆弱性スキャンを起動するワークフローも実現しやすい。

まとめ:「インフラ図を書く時代」を終わらせる選択肢

ネットワーク図は、書いた瞬間から古くなる宿命を抱えていた。Scanopyは「描く」のではなく「取得する」発想で、その宿命を断ち切るOSSだ。AGPL-3.0で完全にオープンソース、Docker Composeで2分で起動、Rust製で軽量、4つのビューで多面的に可視化、エクスポートでAI連携も可能。自宅ラボから企業オンプレまで規模を問わず適用でき、★4.8kという数字が示すとおりコミュニティの支持も厚い。

「最新のネットワーク図を出してください」と言われたとき、自信を持って「URLをどうぞ」と答えられる体制を、まずはローカルのdocker compose upで試してみる価値がある。自宅ラボから企業オンプレまで規模を問わず、ネットワーク運用の負担は確実に軽くなる。3年運用しても陳腐化しない図はScanopyだけが提供できる。

FAQ

Q. クラウド(AWS/GCP/Azure)の構成も可視化できますか?

A. パブリックIPベースのスキャンは可能ですが、各クラウドAPIとの公式統合は本記事執筆時点で限定的です。クラウド側はTerravisionや各社のArchitecture Diagram機能と組み合わせ、Scanopyはオンプレ/VPC内部のスキャンに使うのが現実的です。

Q. SNMP v3に対応していますか?

A. SNMP v2c/v3に対応しています。コミュニティストリングや認証情報はWebUIから登録でき、対象デバイスごとに切り替え可能です。

Q. AGPL-3.0は社内利用でも何か義務がありますか?

A. 社内サーバーで自社のみが使う場合は、ソースコード公開の義務は発生しません。ただしSaaSとして第三者に提供する場合はAGPLの「ネットワーク経由配布」条項により、改変ソースの公開が必要になります。社内ツールとしての利用は問題ありません。

Q. スキャン対象側に何か影響はありますか?

A. ARP/ICMP/TCP接続の試行が発生するため、IDSで検知される可能性があります。本番ネットワークで動かす際は、セキュリティチームに事前通知し、スキャナのIPをホワイトリスト化することを推奨します。

Q. 商用ライセンス・SaaS版との違いは?

A. AGPL自己ホスト版は機能上の制限はなく、すべて利用できます。商用ライセンスはAGPLの公開義務を回避したい組織向け、SaaS版「Scanopy Cloud」は運用負荷を完全にオフロードしたい組織向けです。プロジェクトの持続性のため、企業利用ならいずれかの有償プランの検討が推奨されます。

Q. 1台のデーモンでスキャンできるノード数の上限は?

A. 公式の明記はありませんが、Rust実装の軽量さから数千ノード規模でも単一デーモンで十分とされています。複数サブネットや多拠点では、デーモンを分散配置して負荷分散できます。

Q. ネットワーク図のエクスポートをCIに組み込めますか?

A. REST API経由でSVG/Mermaid出力が可能なため、GitHub Actionsの定期実行で社内Wikiに自動同期するワークフローが組めます。インフラ図を「Pull Requestで差分レビューする」運用も実現できます。

Q. ScanopyとTerraformを組み合わせるベストプラクティスは?

A. Terraformで構成した「あるべき姿」とScanopyが拾う「実際の姿」をdiffすることで、構成ドリフトを発見できます。ScanopyのJSONエクスポートをCIで取得し、Terraform stateと比較するスクリプトを書けば自動化可能です。

Q. デフォルトポート60072を変更できますか?

A. docker-compose.ymlのportsマッピングを変更するだけで任意のポートに変えられます。リバースプロキシ(Caddy/Traefik)配下に置く場合は、HTTPS終端を外側で行うのが定番構成です。社内のSSO(OIDC/SAML)と連携したい場合は、リバースプロキシ層で認証を挟む方法が一般的です。

Q. データの保管・バックアップはどうすればよいですか?

A. SQLite運用の場合は./scanopy-dataディレクトリを定期的にバックアップします。本番ではPostgreSQLに切り替え、PostgreSQL側のバックアップ戦略に乗せるのが推奨です。

参照ソース

B!
B! この記事をはてブに追加
広告
GitHub で見る
役に立ったらシェアをお願いします
🔔 AI速報、毎日Xで配信中
Claude Code・MCP・AIエージェントの最新ニュースをいち早くお届け
@peaks2314 をフォロー
記事の信頼性について
AI Heartland エディトリアルポリシーに基づき作成
複数ソース照合
公式情報・報道等を突き合わせて確認
ファクトチェック済
ソースURLの内容を検証
参照ソース明記
記事末尾に引用元を掲載
Next Read →
🦀 RustySEO完全解説:Tauri+Rust製の無料デスクトップSEOツール、SEMrushの代替候補
関連記事
🦀 RustySEO完全解説:Tauri+Rust製の無料デスクトップSEOツール、SEMrushの代替候補
Tauri+Rust製の無料SEO/GEOデスクトップツール「RustySEO」を解説。クロール無制限・Core Web Vitals・キーワード分析・サーバーログ解析・Gemini/Ollama統合・タスク管理を1アプリに統合。SEMrush・Ahrefs・Screaming Frogの代替候補としての実力をスクリーンショット中心に紹介。GPL-3.0。
2026.05.02
📥 yt-dlp完全ガイド2026年版:1400+サイト対応動画ダウンローダーのCVE修正とAI連携活用
1400以上のサイトに対応する動画ダウンローダー「yt-dlp」を2026年版で徹底解説。Python 3.10必須化、CVE-2026-26331(--netrc-cmdコマンドインジェクション)の修正、Whisper/LLMとの連携、SponsorBlock・字幕抽出・ffmpeg連携まで実用手順を網羅。Unlicense、★160k超。
2026.05.02
🧑‍💼 Frontman完全解説:ブラウザでクリックして直すAI Vibe Coding OSS、Next.js/Astro/Vite対応
ブラウザ上で要素をクリックして自然言語で修正指示を出すと、ソースコードを自動修正してホットリロードするAI Coding OSS「Frontman」を解説。Next.js・Astro・Vite対応、Claude/OpenAI/OpenRouterのBYOK、MCPサーバー連携。Apache-2.0/AGPL-3.0デュアルライセンス、★364の注目株。
2026.05.02
🎙️ WhisperLiveKit完全解説:超低遅延・話者識別付きセルフホスト音声認識OSSの使い方
Whisperベースの超低遅延セルフホスト音声認識OSS「WhisperLiveKit」を解説。SimulStreaming/AlignAttによるリアルタイム文字起こし、話者識別(Sortformer/Diart)、200言語対応、Apple Silicon MLXからCUDAまで対応。FastAPI+WebSocket、Docker一発起動、Chrome拡張連携。Apache-2.0、★10.2k。
2026.05.02
Popular
#1 POPULAR
🐧 Copy Fail(CVE-2026-31431)解説:Linuxカーネル脆弱性とEC2/ECS/EKSへの影響
Theori Xintが発見したLinuxカーネル脆弱性Copy Fail(CVE-2026-31431)の解説。authencesnとAF_ALGのインプレース最適化で非特権ユーザーがページキャッシュを4バイト書き換えてroot奪取。ECS・EKSでのコンテナエスケープ影響と即時ミティゲーション手順を解説。
#2 POPULAR
💥 AIエージェントが本番DBを削除|PocketOS事件に学ぶCursorやClaudeの権限設計
Cursor IDE上で動作するClaude Opus 4.6のAIエージェントが9秒で本番DBとバックアップを消去したPocketOSの事件を解剖。Railway APIトークンの広すぎる権限、確認のない破壊操作、同一ボリューム内バックアップという3つの欠陥を整理し、開発者が今日から実装すべき防御策を解説する。
#3 POPULAR
🛰️ Sentrux徹底解説:AIエージェント時代の「コード品質センサー」、Rust製OSSでClaude Codeと連携
Sentrux(GitHub 1.4kスター・MIT・Rust製)は、AIエージェントのフィードバックループを閉じる「アーキテクチャセンサー」。5つのメトリクス(モジュラリティ・非循環性・深さ・均等性・冗長性)でコード品質を0〜10000点で測定。Claude CodeへのMCP統合で、エージェント生成コードの構造劣化を即時検知する。
#4 POPULAR
📊 TradingView × Claude Code自動売買|MCPサーバーで78ツール連携・Pine Script生成
TradingView MCPはClaude CodeからTradingView Desktopを直接操作できる78ツール搭載のMCPサーバー。チャート分析、Pine Script開発、マルチペイン、アラート管理、リプレイ練習まで自然言語で実行。導入手順を解説
#5 POPULAR
🎨 awesome-design-md:DESIGN.mdでAIにUI生成させる方法【58+24日本語ブランド対応】
DESIGN.mdをプロジェクトに置くだけでAIエージェントが一貫したUI生成を実現。Vercel・Stripe・Claudeなど58ブランドのデザイン仕様をnpx 1コマンドで導入する方法と、実際の出力差を検証した結果を解説。
← yt-dlp完全ガイド2026年版:1400+サイト対応動画ダウンローダーのCVE修正とAI連携活用 RustySEO完全解説:Tauri+Rust製の無料デスクトップSEOツール、SEMrushの代替候補 →