tools team/tools

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

32bitカベ(120Mbpsあたり)

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

おまけ

":::::2"の意味

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でやるときのトラフィック量の上限

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

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

4.2Gbpsのカベ

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

Maxbytesを手動で修正する or ifHighSpeed MIB を取得する or 64bit利用可能な環境
ならば、問題の回避が可能です。

(カウンターじゃないけど)perl15桁整数のカベ

上記と同様の32bit問題。
おそらく use bigint; で解決。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-04-12 (金) 13:37:37 (1588d)