ZabbixでNW機器を再起動していないのにSNMPのuptimeアラート 32bitカウンターのオーバーフローによる497日問題

ZabbixでNW機器を再起動していないのにSNMPuptimeアラートがでることがあります。

 

これは、32bitカウンターのオーバーフローによる497日問題によるものです。

 

Windows NT系(例:Windows 2000, XP, Vista, 7, Server 2003, 2008など)では、システムの稼働時間(uptime)を32ビットの符号なし整数で10ミリ秒単位でカウントしていました。

 

このカウンターの最大値は 

 

2の32乗 = 4,294,967,295。

 

つまり、497日と約2時間28分でカウンターがオーバーフローし、0に戻ってしまいます。

 

 

NW機器も同様に32bitの場合は、同様の事象が発生してしまいます。

 

暫定的な対策としては、

 

①定期的な再起動を行うことで、497日以上の連続稼働を避ける。

②監視ツールやログ設計において、uptimeの扱いに注意する。

 

また、Windows 8以降や64bit環境ではこの問題は基本的に発生しないので、発生するのは限定されます。

 

Zabbixでuptimeだけでなく、その他の条件と組み合わせて使うとかしないと再起動していないけどアラートが飛ぶというのは避けられないですね。