社内ネットワークの”見える化”ツールを実現してみた~その②~

こんにちは、インフラグループの人見です。
前回の記事では、ネットワーク機器の通信量を取得し自動化するところまでご紹介しました。 この記事では、TeraTermマクロで取得した通信量をExcelOnlineに貼り付けてグラフ化する方法をご紹介します。

グラフの作成方法

前回、タスクスケジューラーを用いて10分間隔でTeraTermマクロを起動するバッチを実行し、10分前と現在の通信量の差分を取得する方法についてご紹介しました。
そこで取得した通信量を、マクロを使用してExcelOnlineでグラフを作成していきます。

以下は、計測したトラフィック量と10分前のトラフィック量の差分でグラフを作成するマクロの内容です。

1 Workbooks.Open Filename:=”C:\任意のフォルダ\ teraterm.csv”
   →TeraTermマクロのCSVを開きます
2 Columns(“b:b”).Select
3 Selection.Copy
   →TeraTermマクロのCSV内の範囲を指定してコピーします
4 Microsoft Edgeを起動するかつ、指定したURLへ遷移
   →任意のフォルダを開きます
5 
6 Application.Wait Now+TimeValue(“00:00:20”)
7 CreateObject(“Wscript.Shell”).SendKeys”^a”
8
9 Application.Wait Now+TimeValue(“00:00:10”)
10 CreateObject(“Wscript.Shell”).SendKeys”^v”
11 
12 Application.Wait Now+TimeValue(“00:00:30”)
13 SendKeys”{ESC}”
    →30秒待機し、「ESC」キーを押下(プロキシログイン時停止キャンセル用)
14
15 Application.Wait Now+TimeValue(“00:01:00”)
16 SendKeys”%{F4}”
17
18 Application.CutCopyMode=False
    →コピーの範囲選択の解除
19 
20 Application.Wait Now+TimeValue(“00:00:10”)
21 
22 Workbooks(“teraterm.csv”).Close SaveChanges:=True
    →TeraTermマクロのCSVを保存して閉じる
23 
24 If Workbooks.Count=1 Then
25 Application.Quit
26 End If
27 This Workbooks.Close
    →アプリケーションを指定してExcelOnlineを閉じる

本マクロは、以下の環境で動作しています。
Windows11+Microsoft 365 Excel+TeraTerm+Microsoft Edge

履歴管理のためリネームバッチを当てる

先程保存したTeraTermマクロのCSVのファイル名を「teraterm.csv」から「YYYYMMDD.csv」に変更するバッチを当てます。

rem 「teraterm.csv」を当日日付の「YYYYMMDD.csv」へファイル名変更
timeout 5
rename teraterm.csv ”%date:~0,4%%date:~5,2%%date:~8,2%.csv”

以上で、社内ネットワークの“見える化”ツールの作成が完了しました。

構築全体の流れは以下です

  • タスクスケジューラーにて10分間隔でTera Termマクロを起動させるバッチを実行
  • 通信量を取得
  • グラフ作成
  • 保存しているCSVファイルのリネームバッチを当てる

このCSVをSharePointに貼り付けることで、社内公開することに成功しました。
以下は実際に社内公開している画面です。このようなグラフで社内公開することができます。

まとめ

ネットワークの状態を誰でも直感的に把握できる環境が整い、ユーザーの方からもネットワークの混雑状況についてのお問い合わせが減りました。
「TeraTermやExcelOnlineって、こんな使い方もできるんだ!」と感じていただけたら嬉しいです。
もし似たような課題を抱えている方がいれば、ぜひ参考にしてみてください!