NetBox(ネットボックス)は、IPアドレス・VLAN・ラック・機器・ケーブル配線といったネットワークとデータセンターの構成情報を1つのデータベースで管理する、オープンソースのインフラ台帳です。Excelの台帳と違い、REST APIやAnsibleから同じデータを読み書きできるため、自動化の「正しい構成の出どころ(Source of Truth)」として使われます。この記事では2026年9月27日時点の最新版v4.7.1の公式ドキュメントとソースコードを一次情報に、NetBoxでできること、無料版と商用版の違い、構築手順、APIでの使い方、Zabbixとの連携までを説明します。
まとめ:NetBoxでできることと導入の要点
- NetBoxはIPAM(IPアドレス管理)とDCIM(データセンター基盤管理)を中心に、回線・仮想マシン・VPNまで1つのデータモデルで記録するツールです。ライセンスはApache 2.0で、本体は無料で使えます。
- 監視・設定投入・DNSサーバーの機能は持ちません。ZabbixやAnsibleにデータを渡す側として使うのが前提です。
- 最新版はv4.7.1(2026年9月15日)。自前で動かすにはPython 3.12以上、PostgreSQL 15以上、Redis 6.0以上が必要です。試すだけなら公式のDockerイメージ(netbox-docker)が早道です。
- 使い方の基本は、サイトやデバイスタイプなどの参照先を作ってからデバイス・プレフィックス・IPアドレスを登録し、空きIPの払い出しをREST APIで自動化することです。
- 既存環境をv4.7へ上げる場合は、PostgreSQL 14とRedis 5が非対応になった点と、v1形式のAPIトークンがv5.0で廃止予定である点を先に確認してください。
NetBoxとは:ネットワークの「あるべき構成」を記録するSource of Truth
NetBoxは、DigitalOceanのネットワークエンジニアだったJeremy Stretch氏が2015年にネットワーク構築の自動化のために開発し、2016年6月にオープンソースとして公開されたツールです。現在はNetBox Labs社とボランティアのメンテナーが開発を担い、GitHubのスター数は2万を超えています(2026年9月時点で21,604)。PythonのWebフレームワークであるDjangoで作られ、データはPostgreSQLに、バックグラウンド処理のキューはRedisに置きます。
設計の軸は「実際のネットワークを正確に写せるデータモデル」です。たとえばIPアドレスは機器そのものではなく、機器のインターフェースに割り当てます。1つのインターフェースに複数のIPを持たせることもできます。この細かさがあるので、NetBoxのデータからそのまま設定ファイルや監視対象リストを生成できます。台帳としての位置づけは、ITILの構成管理データベースと重なる部分があります。違いはCMDBとは?構成管理データベースの仕組み・ITILとの関係・導入判断を解説で整理しています。
NetBoxが提供しない機能:監視と設定管理は別ツール
公式ドキュメントは、NetBoxが提供しない機能として、ネットワーク監視、DNSサーバー、RADIUSサーバー、設定管理(コンフィグ投入)、ファシリティ管理の5つを挙げています。SNMPで機器をポーリングして死活を見る、といった用途はNetBoxの範囲外です。「NetBoxに記録された構成」を正として、監視ツールや構成管理ツールにデータを配るのが本来の使い方になります。
NetBoxでできること:IPAM・DCIMを中心とした管理対象
v4.7.1の公式ドキュメント(Introduction)が挙げる主な機能を、管理対象ごとにまとめると次のとおりです。
| 領域 | 主なオブジェクト |
|---|---|
| IPAM | プレフィックス、IPアドレス、IPレンジ、VRF、VLAN、ASN |
| DCIM | サイト、ラック、デバイス、モジュール、ケーブル、電源 |
| 回線 | 回線事業者、回線、回線終端 |
| 仮想化 | クラスター、仮想マシン、VMインターフェース |
| VPN・無線 | トンネル、IKE・IPSecポリシー、L2VPN、無線LAN |
| 拡張 | カスタムフィールド、スクリプト、Webhook、プラグイン |
IPAM:プレフィックス内の空きIP管理と払い出し
IPAMはIPv4とIPv6を同等に扱い、プレフィックス(例:10.0.0.0/24)の配下で使用中のIPと空きを自動で計算します。「このプレフィックスから次の空きIPを1つ割り当てる」という操作がAPIで用意されているため、サーバー構築の自動化に組み込みやすい点が、スプレッドシートやKea DHCP Serverとは?インストール・設定・Control Agent(kea-ctrl-agent)・HA構成まで解説のようなDHCPサーバー側の管理との大きな違いです。VRFごとにアドレス空間を分けられるので、顧客ごとに同じプライベートアドレスを使うマルチテナント環境も記録できます。
DCIM:ラック・機器・配線の台帳化
DCIMでは、サイト・ロケーション・ラックの階層に機器を配置し、ラックの正面図・背面図(エレベーション)をSVGで表示します。機器の型番ごとにインターフェースや電源ポートをテンプレート化でき、ケーブルの両端をつなぐと配線経路をたどれます。v4.7では冷却設備のモデル化も加わりました。データモデルの詳細と台帳の移行手順はNetBox DCIMとは?データセンター構成をラック・機器・配線・電源で台帳化するで扱っています。
拡張:カスタムフィールド・イベントルール・プラグイン
標準のモデルに無い項目は、カスタムフィールドで追加します。オブジェクトの作成・変更をきっかけにWebhookやスクリプトを実行するイベントルールもあり、「IPが割り当てられたらDNS登録ツールに通知する」といった連携をコードなしで組めます。これで足りない場合は、Djangoアプリとして書くプラグインで画面やモデルごと追加できます。オブジェクトの作成・更新・削除は変更履歴に記録され、保持されている履歴から実行ユーザーと日時を確認できます。ただし保持期間の既定は90日(CHANGELOG_RETENTION)なので、監査に使う場合は延長しておきます。
無料版と商用版の違い:Community・NetBox Cloud・Enterprise
NetBoxには、自分でサーバーを用意するオープンソース版(NetBox Community)のほかに、NetBox Labsが提供する商用版が2種類あります。
| 提供形態 | 運用 | 料金 |
|---|---|---|
| NetBox Community | 自社サーバーに構築 | 無料(Apache 2.0) |
| NetBox Cloud Free | NetBox LabsのSaaS | 無料(上限あり) |
| NetBox Cloud 有償 | NetBox LabsのSaaS | 非公開(要問い合わせ) |
| NetBox Enterprise | 自社環境に商用版を構築 | 非公開(要問い合わせ) |
NetBox Cloudの無料プランは、デバイス100台、IPアドレス500件、APIリクエスト月1万回、ブランチ(変更を本番に反映する前の作業領域)2つまでと公式ドキュメントに記載されています。検証や小規模な拠点ならこれで足ります。有償のCloud(Starter・Professional・Premium)とEnterpriseの価格は公開されておらず、見積もりが必要です(2026年9月27日確認)。
NetBoxの構築方法:Dockerで試す手順と公式のUbuntu手順
システム要件(v4.7.1)
| 依存ソフトウェア | 対応バージョン |
|---|---|
| Python | 3.12、3.13、3.14 |
| PostgreSQL | 15以上(MySQLは非対応) |
| Redis | 6.0以上 |
公式の手順はUbuntu 24.04で検証されています。Windowsへの直接インストール手順は公式に無いため、Windowsで試すならDocker DesktopかWSL2上でnetbox-dockerを動かします。
netbox-dockerによる評価環境の構築
netbox-communityが提供するDocker構成(netbox-docker)の最新版は5.1.1(2026年9月10日)で、リリースノートの対応範囲はNetBox v4.7.x以降です。READMEのクイックスタートは次の5行です。
git clone -b release https://github.com/netbox-community/netbox-docker.git
cd netbox-docker
cp docker-compose.override.yml.example docker-compose.override.yml
docker compose pull
docker compose up
起動後にブラウザでhttp://0.0.0.0:8000/を開きます。初期ユーザーは無いので、別のターミナルで管理者を作成します。
docker compose exec netbox /opt/netbox/netbox/manage.py createsuperuser
画面は日本語に切り替えられます。NetBoxの翻訳には日本語(ja)が含まれており、ユーザー設定の言語で選べます。
本番向け:公式手順の流れ
本番環境では、公式のインストール手順の順に次の6段階で構築します。
- PostgreSQLをインストールし、データベース
netboxと同名のユーザーを作る(文字コードはUTF8) - Redisをインストールする(
localhostにだけ待ち受けさせる) - リリースアーカイブを
/opt/netbox-4.7.1/に展開し、/opt/netboxへシンボリックリンクを張る configuration.pyにALLOWED_HOSTS・DATABASES・REDIS(tasksとcachingに別のデータベース番号を指定)・SECRET_KEY・API_TOKEN_PEPPERSを書き、upgrade.shを実行する- GunicornまたはuWSGIとバックグラウンドワーカーをサービスとして常駐させる(公式のsystemd構成ではnetboxとnetbox-rqを起動・自動起動設定する)
- nginxかApacheをリバースプロキシにしてHTTPSで公開する
版ごとのディレクトリに展開する方式では、設定ファイルやアップロード済みファイルなどを引き継いでシンボリックリンクを変更し、upgrade.shによる依存パッケージの更新・データベース移行とサービス再起動まで行います。事前にバックアップを取得してください。Redisについては、タスク用のデータベースに書き込める者がワーカー上で任意のコードを実行できると公式が警告しているため、外部から到達できる場所に置く場合は認証を必ず有効にしてください。
NetBoxの使い方:登録の順序とREST APIでの自動化
オブジェクトの登録順序と必須の参照先
デバイスは、メーカー・デバイスタイプ(型番)・デバイスロール(役割)・サイトを参照して作るため、これらを先に登録します。ラックへの配置は任意なので、必要な場合だけ設定します。IPAMのプレフィックスとIPアドレスはアドレス範囲から親子関係が自動で決まるため、親プレフィックスが無くてもIPアドレスは登録できます。実務では、デバイスを作ったあとにプレフィックスを登録し、IPアドレスを作ってデバイスのインターフェースに割り当てる順で進めると迷いません。数百件以上ある既存台帳は、画面から1件ずつ入れるよりも、一覧画面のインポート機能にCSVを貼り付けるほうが早く済みます。
REST APIとv2トークンによる空きIPの払い出し
APIトークンはユーザーのプロフィール画面で作成します。v4.5からはnbt_で始まるv2トークンが導入され、ヘッダーはBearer形式になりました。次の例は、IDが1のプレフィックスから次の空きIPを1つ割り当てるリクエストです。
curl -X POST \
-H "Authorization: Bearer nbt_<key>.<token>" \
-H "Content-Type: application/json" \
-d '{"description": "web01"}' \
https://netbox.example.com/api/ipam/prefixes/1/available-ips/
全エンドポイントの仕様は、稼働中のNetBoxの/api/schema/swagger-ui/で確認できます。トークンは作成時にしか平文が表示されないので、その場で安全な場所に控えてください。
PythonクライアントpynetboxによるIPの割り当て
Pythonから操作するなら公式クライアントのpynetbox(最新7.8.0)を使います。v2トークンにはv7.6.0から対応しています。実行前にpip install pynetbox==7.8.0でライブラリを導入し、URLとトークンを自分の環境の値に置き換えてください。トークンにはIPアドレス作成に必要な権限と書き込み許可が必要です。
import pynetbox
nb = pynetbox.api("https://netbox.example.com", token="nbt_<key>.<token>")
# プレフィックスの詳細画面で確認したIDに置き換える
prefix = nb.ipam.prefixes.get(1)
if prefix is None:
raise ValueError("指定したプレフィックスが見つかりません")
new_ip = prefix.available_ips.create({
"dns_name": "web01.example.com",
"status": "active",
})
print(new_ip.address)
Zabbix・Ansible・Terraformとの連携方法
NetBoxは監視も設定投入もしないため、外部ツールとの連携が実運用の中心になります。代表的な連携先は次のとおりです。
- Zabbix:NetBox本体にZabbix連携機能は無く、プラグインを使います。Zabbixの公式ブログに2025年10月に掲載されたOpensource ICT Solutions社のnbxsync(AGPL-3.0)は、ZabbixのAPIからテンプレートとマクロを読み込み、NetBox側でメーカーや機器の役割ごとに割り当てたうえで、NetBoxのデバイスや仮想マシンをZabbixのホストとして同期します。ホストの定義はNetBoxが正になります。ただし最新の1.0.5(2026年8月)の対応範囲はNetBox 4.2.6〜4.6.xで、v4.7への対応はまだ表明されていません。v4.7へ上げる前に対応状況を確認してください。監視側の仕組みはZabbixとは?仕組み・監視できること・他ツールとの違いをわかりやすく解説を参照してください。
- Ansible:公式コレクション
netbox.netbox(ansible-galaxy collection install netbox.netbox)で、NetBoxを動的インベントリとして読み込んだり、プレイブックからオブジェクトを登録したりできます。Ansible側の前提はAnsibleとは?エージェントレスの仕組みとメリット・デメリット、Red Hat AAPの制約で解説しています。 - Terraform:第三者が保守するe-breuninger/netboxプロバイダー(2026年9月時点でv5.8.0)で、プレフィックスやIPの割り当てをコードで管理できます。
- SNMPでの自動収集:NetBox自身は機器をSNMPで読みに行きません。既存機器を取り込むには、NetBox LabsのOrbエージェント(Apache 2.0)とDiodeを使う方法や、自前のスクリプトでAPIに登録する方法があります。
設定を機器へ入れる前に、NetBoxの構成データと実機の設定が矛盾していないかを検証したい場合は、Batfishとは?ネットワーク構成を検証するOSSツールの仕組みと使い方【2026年版】と組み合わせる方法もあります。
phpIPAM・Nautobot・Excel台帳との違いと選び方
| 比較対象 | 管理範囲 | 向く場面 |
|---|---|---|
| NetBox | IPAM+DCIM+回線・仮想化 | 構成全体をAPIで自動化 |
| phpIPAM | IPAM中心 | IP台帳だけを置き換えたい |
| Nautobot | NetBox系+自動化アプリ基盤 | ジョブやアプリを作り込む |
| Excel台帳 | 自由形式 | 数十台規模・自動化なし |
IPアドレスの台帳だけが課題ならphpIPAMでも足ります。ラック・配線・回線まで1つのデータで持ち、APIで自動化につなげたいならNetBoxが第一候補です。Nautobotは2021年にNetBox v2.10.4からフォークしたプロジェクトで、データモデルは近いものの、フォーク後は別々に開発が進んでいます。両者で迷った場合は、利用したいプラグインや連携ツールがどちらに対応しているかで決めるのが確実です。
v4.5〜v4.7へのアップグレードで注意する変更点
数年前に構築したNetBoxを使い続けている場合、次の変更が影響します。いずれも公式リリースノートに「Breaking Changes」として記載されています。
- PostgreSQL 14とRedis 5.xが非対応(v4.7.0):PostgreSQL 14に接続した状態では、アップグレードスクリプトが途中で停止します。先にデータベースを15以上へ上げる必要があります。
- Python 3.12以上が必須(v4.5以降):Ubuntu 22.04標準のPython 3.10では動きません。
- APIトークンがv2形式へ移行(v4.5で導入、v1はv4.6で非推奨・v5.0で廃止予定):
Tokenヘッダーで呼んでいるスクリプトは、v2トークンとBearerヘッダーに書き換えます。 - 選択式カスタムフィールドの応答形式(v4.7.0):APIの戻り値が文字列から
{"value": ..., "label": ...}形式のオブジェクトに変わりました。値を文字列として比較しているコードは壊れます。 - サービスのポート指定(v4.7.0):
protocolとportsがport_mappingsに統合されました。REST APIは旧形式の書き込みも受け付けますが、GraphQLのフィルターは形が変わっています。
v4.7.0では階層を持つモデル(リージョンやロケーションなど)の内部実装がPostgreSQLのltreeに置き換わり、アップグレード時に機器・仮想マシンごとの設定コンテキストのキャッシュ生成も走ります。台数が多い環境では作業時間が延びるため、本番の前に複製環境で所要時間を測ってください。
NetBoxを導入すべきでない場面
NetBoxは「台帳を正として自動化につなげる」ための道具です。次の条件に当てはまるなら、導入しても手間に見合いません。
- 台帳を更新する運用を決められない:実機の変更をNetBoxへ反映する担当や仕組みが無いと、変更のたびに台帳と実態のずれが蓄積し、構成情報の信頼性を維持できません。
- 機器が数十台で自動化の予定も無い:PostgreSQL・Redis・Webサーバーを保守する負担のほうが大きくなります。試すならNetBox Cloudの無料プランで足ります。
- 欲しいのが監視やコンフィグのバックアップ:どちらもNetBoxの範囲外です。ZabbixやOxidizedなど、目的の機能を持つツールを先に選んでください。
よくある質問
NetBoxは無料で使えますか?
使えます。本体はApache 2.0ライセンスのオープンソースで、ソフトウェアのライセンス料は無料です。自社サーバーに構築する場合の設備費や構築・保守の費用は別途必要です。NetBox Cloudにもデバイス100台・IPアドレス500件までの無料プランがあります。
NetBoxはWindowsで動きますか?
公式の手順はUbuntu 24.04向けで、Windowsへの直接インストール手順はありません。WindowsではDocker DesktopかWSL2の上でnetbox-dockerを使って動かします。
NetBoxとZabbixは連携できますか?
本体に連携機能は無く、nbxsyncなどのプラグインで連携します。NetBoxに登録したデバイスを、割り当てたテンプレート付きでZabbixのホストとして自動登録する構成が一般的です。
NetBoxはSNMPで機器情報を自動取得できますか?
NetBox本体にはSNMPのポーリング機能がありません。既存機器の情報を取り込むには、NetBox LabsのOrbエージェントとDiodeを使うか、収集スクリプトからREST APIに登録します。
NetBoxの公式マニュアルはどこにありますか?
公式ドキュメントはnetboxlabs.com/docs/netbox/にあります(旧URLのdocs.netbox.devから転送されます)。英語のみですが、画面自体はユーザー設定で日本語表示に切り替えられます。