アイテム:ポーリング落ちが発生した場合の処理について

NW上で障害があり、ポーリング落ちが発生した場合の処理について教えてください。
まず、アイテムの設定は下記のとおりとします。
 データ型  :数値(整数)
 取得間隔  :60秒
 保存時の計算:差分/時間

次に、下記のように0:01にポーリング落ちが発生したと仮定します。

タイムスタンプ  | OIDで取得した生値
2019/1/1 0:00 | 100
2019/1/1 0:01 |(ポーリング落ち)
2019/1/1 0:02 | 150

この場合、ヒストリに保存される値として、“データの差分”については
0:01に保存される値が「処理なし」となるため、0:02では150-100=50となると思います。

【source】(ちょっと古いですが)Zabbix Documentation 2.2
https://www.zabbix.com/documentation/2.2/jp/manual/config/items/item
[パラメータ:保存時の計算]の注釈より
“現在の値が前の値より小さい場合、その差は破棄され(何も保存されません)、別の値を待ちます。”
⇒Zabbix上で[最新データ]から値を見ると、ポーリング落ちのタイムスタンプ・値は表示されていませんので、
 0:01の値が「0」として保存されているようには見えません。

ですが、“時間”については次のどちらになるのでしょうか?

(a)取得間隔が60秒なので、60秒(つまり、固定)
(b)有効値があるタイムスタンプは0:00なので、120秒

Zabbix Documentation 2.2には、下記のとおり(b)であるような記載があるのですが
実際の取得データを見ると(a)なのでは?と思う箇所があり、気になりました。
ただの”気のせい”だったらいいのですが...
-----------------------------------------------------------------------------
差分/時間 - 値を (value-prev_value)/(time-prev_time) として評価します。
value -現在の値
value_prev -前に受信した値
time -現在のタイムスタンプ
prev_time -前の値のタイムスタンプ
-----------------------------------------------------------------------------

以上、よろしくお願いいたします。

コメント表示オプション

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

正常時であれば、前回の取得タイミングのタイムスタンプとの差分
の時間を使用して1秒あたりの差分を計算しています。

Zabbix 4.0であれば、

 src/zabbix_server/preprocessor/item_preproc.c

内の関数item_preproc_delta_float()の処理をご確認ください。

アイテムが取得不可の状態になってしまうと、次に取得するのは60
秒後ではなく、デフォルトだと5分後になってしまったはずですが、
その際に同様の処理が行われるかまでは確認していません。

アイテムに指定された監視間隔(更新間隔)で割って計算するのでは
ないということだけは確実でしょう。

ユーザー sumile1229 の写真

さっそくのレス、ありがとうございます。非常に助かります。

> アイテムに指定された監視間隔(更新間隔)で割って計算するのではないということだけは確実でしょう。

なんて心強いお言葉!(感激です)

実は、監視回線がダウンしていた時間帯に、とある拠点の2SW間で通常の3倍近いトラフィック量がZabbix上で計測されていて、
ポーリング落ちのせいかな?と思ったのですが、ほかの機器やポートではそんな異常はなく。
やっぱり実際に何かあったとみて、調査を進めることにします。

ありがとうございました!

ユーザー sumile1229 の写真

> ⇒Zabbix上で[最新データ]から値を見ると、ポーリング落ちのタイムスタンプ・値は表示されていませんので、
>  0:01の値が「0」として保存されているようには見えません。

この部分なのですが、
http://www.zabbix.jp/node/4201
を見させていただいたところ、下記のような記載があり、実際は「0」が入っているのではないか?と思えてきました。

---
差分/時間 OR 差分で前回より値が小さい場合は、intやfloatのオーバーフローを考えれば値0(ゼロ)でinsertではと踏んでいます。
---

もし「0」が入るのであれば、0:02に入る値は”データの差分”が150-0=150となるため、実際のカウンタ上昇より
Zabbix上では多く見えてしまうことになります。本当でしょうか??

ユーザー TNK の写真

アイテムの値が取得できなかった場合、0としては保存されません。

例えば、常にカウントアップするようなOIDの値を監視しているとき
に、100 -> 150 -> 10とかカウントアップするはずなのに小さくな
っていたような場合は、そのカウンタのオーバーフローの発生もし
くは再起動の実施と判断されます。
その場合、そのタイミングのアイテムの値は保存せずに、次のアイ
テムの取得タイミングでは0からの増分を使用したと思います。

ユーザー sumile1229 の写真

ありがとうございました。