Shumokuとは? ネットワーク図をコードと実データで管理しよう

ネットワーク機器を追加したのに、構成図の更新が後回しになってしまう。そんな経験はないでしょうか。

Shumoku(シュモク)は、YAMLやNetBoxなどの構造化されたデータから、ネットワーク構成図を生成するオープンソースのツールです。YAMLをGitで管理する使い方に加え、機器・接続情報の取り込みや、監視情報を図に重ねて表示する機能も提供されています。公式リポジトリ

Shumoku Serverでネットワーク構成とリンク利用率を表示した例

Shumoku Serverの表示例。出典:Shumoku公式サイト。公式掲載画像のため、利用するバージョンとは画面が異なる場合があります。

用途に合わせて選べるShumoku

Shumokuには、図を生成するためのライブラリやCLI、その仕組みを使ったアプリケーションがあります。

まずはYAMLから図を生成し、必要に応じて編集や監視の用途へ広げられます。公式リポジトリの構成紹介

Shumokuの主な機能とメリット

YAMLで構成を定義できる

機器をnodes、接続をlinksとして記述します。次は、ルーターとスイッチを接続する例です。

idは接続先を参照する識別子、labelは図に表示する名前です。接続にはfromとtoを使います。ポートやグループを指定する記法も用意されています。YAMLリファレンス

YAMLをGitに保存すれば、構成変更の差分を確認し、プルリクエストでレビューできます。CLIをCIに組み込めば、変更時に図を再生成する運用も作れます。GitリポジトリやCIのワークフローは利用者が用意します。CLIドキュメント

ネットワーク図向けの自動レイアウト

現在のShumokuは、独自の階層型レイアウトエンジンを備えています。ノードや接続情報をもとに配置を計算し、図を生成します。公式の機能紹介

YAMLでは、directionで配置方向を、nodeSpacingやrankSpacingで間隔を指定できます。構成に合わせてこれらを調整し、読みやすい図に整えていきます。レイアウト設定

ベンダー・機器のアイコンを使える