[[tools team/tools]]

mrtgを使ってるときに遭遇しやすいカベ的要素。

#contents

*32bitカベ(120Mbpsあたり) [#u32ec4d3]

mrtgはTarget行で特に指定がないときは、32-bitカウンターをとってくる。
.1.3.6.1.2.1.2.2のあたり。

32bitだと120Mbpsくらいまでのトラフィック量しか計算できない。それ以上のトラフィック量のところを32bitで頑張ろうとすると歯ブラシみたいなグラフになる。

そういうときは、64-bitカウンターを使う。64bitを使うためには、Target行の末尾に、":::::2"を付けてあげるだけ。.1.3.6.1.2.1.2.31あたりからカウンター値を取ってくるようになる。

例:
 Target[router1]: community@router1:::::2

**おまけ [#w01a3a93]
***":::::2"の意味 [#a7138302]
Targetの末尾に、SNMPOptionを指定して、SNMP的挙動をTarget毎に設定できる。

man mrtg-referenceより、
 Extended Host Name Syntax
 community@router[:[port][:[timeout][:[retries][:[backoff][:[version]][|name]]]]]

このversionのところで"2"と書いてあげると、v2cでsnmpgetするとともに64bitのを取ってくるようになる。

***32bitでやるときのトラフィック量の上限 [#j20559fb]
カウンターが32bitなので、カウンター値の上限は4294967296(2^32)。なので、32bitでやってると、5分間で4294967296バイトまでしか数えられない。(この場は仮に5分間ってことで)、、、このへんはmrtgのカウンターが桁上がりするときの話です。それは別途。だれか。

4294967296バイトというのは、114,532,461bit/sec (4294967296*8/300[sec])。さっき120Mbpsくらいが限界と書いたけど、もっと正確に書くと114,532,461bpsが限界。

*4.2Gbpsのカベ [#n18a3166]
32bit版のperlを使っていた場合、mrtgのcfgmakerや、perlスクリプトでifSpeed MIBのデータを取得して自動でconfigを書くと、~
Maxbytesの値が32bitの最大値以上にはならなかった。~

Maxbytesを手動で修正する or ifHighSpeed MIB を取得する or 64bit利用可能な環境ならば、~
問題の回避が可能です。
Maxbytesを手動で修正する or ifHighSpeed MIB を取得する or 64bit利用可能な環境~
ならば、問題の回避が可能です。
*(カウンターじゃないけど)perl15桁整数のカベ [#iee4fb06]
上記と同様の32bit問題。~
おそらく use bigint; で解決。

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS