SNMPで取得した値の加工及び取り込み
はじめまして、お世話になっております。
杉村と申します。
早速ですが題記の件、皆様のお知恵を拝借したく存じます。
環境
CentOS5.1、ZABBIX1.4.5-1、ZABBIX-AGENT1.4.5-1
モニタリングツールとしてZABBIXを評価中なのですが
モニタ対象にAgentを導入できない環境にあります。
SNMPから得られる値を組み合わせて目的の測定値として
算出したいのですがモニタ側のみで可能でしょうか。
実現したい内容を具体的に示します。
〜(例)〜〜〜
1.下記3つのSNMP MIBにより3つのINTEGER値を取得する。
SNMP MIB 1 : .1.3.6.1.2.1.25.2.3.1.4.1
SNMP MIB 2 : .1.3.6.1.2.1.25.2.3.1.5.1
SNMP MIB 3 : .1.3.6.1.2.1.25.2.3.1.6.1
2.SNMP MIB 1〜SNMP MIB 3 をそれぞれ下記の式で計算しValue1及びValue2を得る。
Value1 = SNMP MIB 1 × SNMP MIB 2
Value2 = SNMP MIB 1 × SNMP MIB 3
3.Value1及びValue2を出力する。
〜〜〜〜〜以上〜
SNMP MIB 1〜SNMP MIB 3 の測定は設定できるのですが、Value1及びValue2のような値を計算させる方法はありませんでしょうか。
乱筆で恐縮ですがどうぞ宜しくお願い申し上げます。
sugimura - 投稿数: 2
お世話になっております、杉村です。
本件、解決いたしましたのでご報告差し上げます。
ZABBIX本家 V1.4マニュアル(PDF)
http://www.zabbix.com/downloads/ZABBIX%20Manual%20v1.4.pdf
108頁〜109頁の「5.12.8.External checks」を参考にしました。
本文にも記載がありますが、過度の使用はZABBIXのパフォーマンス低下につながるそうなので注意が必要そうです。
実際、ネットワーク経由でSNMP MIBの値を直接取得し、算出したものを使用するスクリプトではZABBIX側のステータスがActiveからNotSupportedに落ちてしまう現象を確認しました。
アイテムの増加も考えるとスマートなスクリプトでなければ実用は難しそうです。
以上、ありがとうございました。
kodai - 投稿数: 1341
こんにちは。回答が遅くなってしまい申し訳ありません。
すでに解決されているようですが、ZABBIXサーバのみでsnmpで取得したデータを計算して表示するためには、External Checkを利用する方法が適切だと思います。
もしくは、計算されたデータ(Value1、Value2)が、アラートを飛ばす際の閾値判定にのみ必要ということであれば、個々のデータ(MIB1、MIB2、MIB3)はそれぞれデータを取得しておき、トリガーの条件式で計算をして障害を検知する方法もあると思います。
また、ActiveからNotSupportedに落ちてしまう現象は、スクリプト実行のタイムアウトが原因かもしれません。zabbix_server.confと、zabbix_agentd.confで、Timeout=をそれぞれデフォルトより大きな値に設定して試してみてください。