見出し画像

TWRMONのバグはRMON2のTimeFilterの仕様が原因の可能性が高い

今朝は4時半から開発開始です。ワールドカップ「アメリカ対イラン」を観ながらTWRMONのバグ調査です。
昨日しかけておいた問題発生でプログラムが停止する罠は見当違いだったようです。もういちど現象を詳しく見てみることにしました。
どうやらRMON2のaddressMapTableのMIBをTWSNMP FCから取得している間にテーブルのインデックスが変わることが原因でMACアドレスの項目が取得できなかったようです。

addressMapTableのインデックスには、addressMapTimeMarkというインデックスが含まれます。上のRMON管理の画面では黄色の矢印です。テーブルのデータ量が増えてくるとMACアドレス(赤の矢印)のMIBと最終変化のMIBの取得に時間差があって、その間にインデックスが変わってしまうことが原因で片方しかない状態になっていました。
アドレスマップ(addressMapTable)以外の問題もaddressMapTimeMarkと同じようにRMON2のTimeFilterという仕組みのインデックスを使っていることが関係しているようです。このTimeFilterはMIBの値が更新された場合にインデックスを増やして更新されたMIBだけ取得しやすくする仕組みなのですが、これが災いしているようです。何となくRMONが普及しなかった原因のような気がします。
根本的な解決はSNMPの1つのリクエストで同じインデックスのMIBを全て取得する方法ですがちょっと厄介です。MIBの取得速度を速くして取得の途中で更新されないようにすれば確率的に改善できそうなのでTWRMON側の定期処理の頻度を下げる方法で改善できないか試してみました。1秒毎に実施していた処理を5秒にしてみました。データ量が増えるまで様子を見ますが、いまのところ再現していません。

明日に続く

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