はじめに
前回の記事で、EasyBlocks Syslogに蓄積されたログをGrafanaで可視化する例を紹介しました。
せっかくGrafanaの環境を用意したので、今回はその環境を活用し、EasyBlocks DHCPのIPアドレス払い出し状況の「推移」を可視化してみたいと思います。
EasyBlocks DHCPシリーズのWeb UIには、現在のIPアドレス払い出し状況を数値で確認できる機能が実装されています。
一方で、
・どの時間帯に
・どの程度のIPアドレスが利用されていたのか
といった時系列での変化(推移)までは確認できません。
本記事では、その不足している「推移の可視化」をGrafanaで補う形で、EasyBlocks DHCPの運用データをもう一段活用してみます。
既存機能
EasyBlocks DHCPでのIPアドレス払い出し状況は、Web UIから以下のように確認できます。

①「リース情報」を選択することで、
② 現在のIPアドレス払い出し数を確認できます。
また、MACアドレスごとに払い出されているIPアドレスの一覧も表示されるため、「今、何台にIPを払い出しているか」を把握するには十分な機能が備わっています。
使用する機能
EasyBlocks DHCP
今回は、EasyBlocks DHCPに標準で搭載されている「リースファイル自動バックアップ機能」を使用します。
この機能では、DHCPで払い出したIPアドレスに関するリース情報を、FTPサーバーなどの外部サーバーへ5分ごとに自動バックアップできます。
本記事では、このバックアップされたリース情報をGrafanaサーバー側で受信し、可視化用のデータとして活用します。
※リース情報自動バックアップ機能の詳細については、マニュアルを参照してください。
Grafana
Grafanaサーバー側では、以下の役割を担います。
- EasyBlocks DHCPから送信されてくるリースファイルをFTPで受信
- リースファイルをCSV形式に加工
- 加工したCSVファイルをデータソースとしてGrafanaで可視化
設定
EasyBlocks DHCP
DHCPサーバーとしてのIPアドレス払い出し設定自体は、本記事では割愛します。
ここでは、リース情報の自動バックアップ機能のみを設定します。

① メンテナンスタブから
② 自動バックアップを有効にし、
③ FTPサーバーに関する情報を入力します。
この設定により、5分ごとにリース情報ファイルが自動的にFTPサーバーへ送信されます。
なお、送信されるリース情報ファイル(dhcpd.leases)の中身は以下のような形式です。

払い出したIPアドレス、リース期間、クライアントのMACアドレスやホスト名などが記載されています。
ただし、このままの形式ではGrafanaで直接可視化することはできません。
そのため、Grafanaサーバー側で可視化しやすい形式に加工します。
Grafanaサーバー
Grafanaサーバーでは、EasyBlocks DHCPから送信されてきたdhcpd.leasesファイルを元に、
- 現在アクティブなIPアドレス数を集計
- その推移を時系列データとしてCSVに記録
するためのシェルスクリプトを用意しました。
以下は、そのスクリプトの内容と役割の概要です。
※本スクリプトは検証用途の例であり、動作を保証するものではありません。

- 4〜5行目
入力となるdhcpd.leasesファイルと、出力となるCSVファイルを定義しています。
- 6行目
リース情報を集計した時刻を取得しています。
本検証ではcronで定期実行しているため、cronの実行時刻が記録されます。Grafanaでは、このtime列を時系列グラフのX軸として使用します。
- 8〜23行目
dhcpd.leases ファイルを読み込み、DHCPで払い出されているIPアドレスのうち、最終的な binding state が active となっているものだけを抽出し、現在利用中のIPアドレス数をカウントしています。
dhcpd.leases には同じIPアドレスの履歴が複数含まれるため、単純に active の行数を数えるのではなく、「そのIPアドレスの最新状態が active かどうか」を判定したうえで集計しています。
この結果がACTIVE変数に格納され、CSVとして追記されます。
CSVファイル確認
実際に作成されるCSVファイルは、以下のような内容になります。

時刻と、アクティブなIPアドレス数のみを持つ、非常にシンプルなCSVファイルです。
可視化
データソース登録
加工したCSVファイルを、Grafanaのデータソースとして登録します。

ダッシュボード作成
データソースの登録が完了したら、ダッシュボードを作成します。今回は、IPアドレス払い出し状況の推移が直感的に分かるよう、折れ線グラフを作成しました。

このように、どの時間帯で、どの程度のIPアドレスが利用されていたのかを、時系列で簡単に確認できるようになります。
活用例
この可視化により、例えば以下のような確認が可能になります。
・特定の時間帯にネットワークが遅くなる原因としてIPアドレス枯渇が発生していないか
・ピーク時の払い出し数に対してプールしているIPアドレス数は適切か
・利用傾向を把握したうえで将来的なアドレス設計やセグメント分割の検討
など、運用面での判断材料として活用できます。
まとめ
EasyBlocks DHCPの標準機能だけでも、現在のIPアドレス払い出し状況を把握することは可能です。
一方で、今回のように外部ツール(Grafana)と組み合わせることで、
・過去から現在までの推移を可視化
・数値だけでは気づきにくい傾向を把握
といった、一歩踏み込んだ運用データの活用が可能になります。
今後、可視化や分析の要件が増えてきた場合でも、既存機能+外部ツールという形で柔軟に対応できる点は、大きなメリットだと感じました。

