見出し画像

TWSNMP FCのポーリング辞典:LANポートの通信量測定

TWSNMPで管理対象ノードの通信量をSNMPで測定する方法について説明します。通信量は単位時間あたりで計測するためSNMPポーリングのpsモードを使用します。

LANポートの関するMIB

LANポートの通信量を測定するためにはifTable

のMIBを取得します。取得した例は、

のようになります。この情報から通信量を取得したいLANポートのインデックスを調べます。インターフェイスの名前を示すifDescr、MACアドレスを示すifPhysAddress、動作状態を示すifOperStatusが手がかりになると思います。
昔は、このテーブルでも良かったのですが、ネットワークが高速になって32ビットのカウンターで測定すると4GBぐらいはすぐに0に戻ってしまいます。そこで64ビットのカウンターが使えるifXTable

を使ったほうがよいです。こちらの取得例は、

送信データ量

送信データ量は、


で測定できます。単位時間モードでifOutOctets.5を取得します。判定条件は0以上なら正常としています。ifHCOutOctets.5に、すれば64ビットカウンターでポーリングを実施します。
グラフ表示すると

のようになります。

受信データ量

受信データ量は、

測定できます。ifHCInOctets.5にすれば、64ビットカウンターで測定できます。

単位を変えて合計を計算する

送受信のMIBまとめて取得してJavaScriptで計算することで通信の合計値を適正な単位に変換して測定ですことができます。設定は

のようになります。

テンプレート

テンプレートは、

のようにLANで検索するとよいです。
テンプレートの定義は、

  {
    "Name": "LANポート送受信",
    "Type": "snmp",
    "Mode": "ps",
    "Params": "ifInOctets.$i,ifOutOctets.$i",
    "Script": "Mbps=8*(ifInOctets_PS+ifOutOctets_PS)/1000000;Mbps < 1000",
    "Level": "low",
    "Descr": "LANポートの送受信の合計量をMbps単位で測定",
    "AutoMode": "index:ifIndex"
  },
  {
    "Name": "LANポート送受信(HC)",
    "Type": "snmp",
    "Mode": "ps",
    "Params": "ifHCInOctets.$i,ifHCOutOctets.$i",
    "Script": "Mbps=8*(ifHCInOctets_PS+ifHCOutOctets_PS)/1000000;Mbps < 1000",
    "Level": "low",
    "Descr": "LANポートの送受信の合計量をMbps単位で測定 64ビットカウンターを使用",
    "AutoMode": "index:ifIndex"
  },
  {
    "Name": "LANポート受信",
    "Type": "snmp",
    "Mode": "ps",
    "Params": "ifInOctets.$i",
    "Script": "rxbytesps=ifInOctets_PS;rxbytesps > 0",
    "Level": "low",
    "Descr": "LANポート受信データ量",
    "AutoMode": "index:ifIndex"
  },
  {
    "Name": "LANポート受信(HC)",
    "Type": "snmp",
    "Mode": "ps",
    "Params": "ifHCInOctets.$i",
    "Script": "rxbytesps=ifHCInOctets_PS;rxbytesps > 0",
    "Level": "low",
    "Descr": "LANポート受信データ量 64ビットカウンターを使用",
    "AutoMode": "index:ifIndex"
  },
  {
    "Name": "LANポート送信",
    "Type": "snmp",
    "Mode": "ps",
    "Params": "ifOutOctets.$i",
    "Script": "txbytesps=ifOutOctets_PS;txbytesps > 0",
    "Level": "low",
    "Descr": "LANポート送信データ量",
    "AutoMode": "index:ifIndex"
  },
  {
    "Name": "LANポート送信(HC)",
    "Type": "snmp",
    "Mode": "ps",
    "Params": "ifHCOutOctets.$i",
    "Script": "txbytesps=ifHCOutOctets_PS;txbytesps > 0",
    "Level": "low",
    "Descr": "LANポート送信データ量 64ビットカウンターを使用",
    "AutoMode": "index:ifIndex"
  },

開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。