SNMPで取得したデータでグラフを形成すると途切れてしまう

いつも大変お世話になっております。

【状況】
SNMPで取得したトラフィックデータでグラフを形成すると、値が急上昇した際に途切れてしまいます。

[アイテム設定]
タイプ = SNMPv2エージェント
SNMP OID = ifOutOctets.*
データ型 = 数値 (整数)
単位 = bps
乗数を使用 = 使用する(8)
更新間隔(秒) = 120
保存時の計算 = 差分/時間

【問題】
他フォーラムで似たような事象があり、OIDが32bitであるためオーバーフローが発生しているのではないかと判断したのですが
監視対象の機器が 64bitのOID(ifHCOutOctets.*) に非対応であった為、対処することができませんでした。

グラフが途切れている間の値は、2分間隔で設定しているにも関わらず 6分〜10分間値が取得できていない状況です。
単位や更新間隔の変更を行えば改善するのではないかと考えてはおりますが、具体的にどう変更すればよいか悩んでおります。
同じような事象に遭遇された方がいらっしゃいましたら、お知恵をお貸し頂きたく存じます。

Zabbixバージョン: 3.0.7

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー heya の写真

ぱっと思いつく原因は二つあります。

一つは、書かれているように、32ビットであることが原因の可能性。
32ビット符号なし整数だと 4,294,967,295 までの値が扱えるので、例えば2分ごとに 4,000,000,000 バイトずつ通信量が増えていれば(そして直前の値が 294,967,295 より大きければ)、ifOutOctets の値は 294,967,295 ずつ減っていくことになります。
差分/時間 としている場合は、前回より値が小さいときは値なしになるので、たまたまそういう状況が10分ぐらい続いていた可能性があります。

参考までに 差分/時間 を指定せず、乗数も使用しないアイテムを作ってみると、どうなっているのかが分かると思います。

この場合だと、更新間隔を短くすれば差分も小さくなり、前回より小さくなる可能性も少なくはなるでしょうね(0 にはできませんが)。

もう一つは、タイムアウトなど何らかの理由で 15:03:43 のときのアイテム取得に失敗して、取得不可になった可能性もあります。一旦取得不可になると、管理→一般設定→取得不可アイテムの更新間隔(秒) で指定した時間だけ待ってからアイテムを取得しに行くのですが、このデフォルトは 600、つまり10分なので、これが原因かもしれません。

取得不可の場合は zabbix_server.log に "ホスト:アイテムキー" became not supported みたいなログが出たと思うので、該当の時間帯のログを確認してみてください。

この場合は、取得不可アイテムの更新間隔を短くすればもっと早く値が取れるようになるでしょうが、これは全体の設定なので、この SNMP のアイテムだけ、というわけにはいきません。場合によっては復旧もしていないのに頻繁に値を取りに行こうとして無駄な負荷がかかることもあるので、そこは意識しておく必要があります。

※追記
よく見ると、値が取れているのは 15:01、15:11、15:17、15:19、15:21 となってますね。取得不可だと 15:03 に失敗したら 15:13 に取りに行くと思うし、15:13、15:15 の値が無いのもおかしいので、取得不可ではないような気がしてきました。

ユーザー Ayuzaki の写真

heya様

ご回答ありがとうございます。そしてお礼が遅くなり申し訳ありません。
大変分かりやすいご丁寧な説明ありがとうございました。

>場合によっては復旧もしていないのに頻繁に値を取りに行こうとして無駄な負荷がかかることもあるので、そこは意識しておく必要があります。
現在、トラフィックが高い状況ですので上記を考慮して今回は設定変更を保留に致しました。

トラフィックが改善された際に、heya様に教えていただきました更新間隔を短くする対策を行ってみようと存じます。
結果が分かり次第、こちらのフォーラムにてご報告させていただきます。