
TWSNMP FCのポーリング辞典:SNMPの基本
TWSNMP FCのSNMPによるポーリングに関する基本について説明します。
SNMPポーリング設定
TWSNMP FCのSNMPポーリング設定の画面は

オリジナルのTWSNMPでは、
MIBGET:hrSystemNumUsers.0>-1:ABS
のような書式でSNMPのポーリングを設定していましたが、TWSNMP FCでは設定画面の項目を分けて設定できるようになっています。基本的には、種別にSNMPを選択します。モードにSNMPのアクセス方法を設定します。
SNMPポーリングモード
2023/2/10現在対応しているモードは、
sysUpTime
再起動監視に特化したモードです。パラメータは必要ありません。
SNMPのアクセスに失敗した場合は障害と判断します。
ifOperStatus
インターフェイス(LANポート)の状態監視に特化したモードです。パラメータに監視対象のifIndexの値を設定します。
count
テーブルなど複数のインスタンスがあるMIBの数を数えます。パラメータに取得するMIBのオブジェクト名、フィルターに取得値の条件、スクリプトに判定条件をJavaScriptで指定します。
process
プロセス監視に特化したモードです。フィルターに監視したいプロセス名を指定します。スクリプトに障害判定のためのJavaScriptを指定します。
ps
取得した数値型のMIBを監視対象のsysUpTimeで計算した単位時間値を使うポーリングモードです。パラメータに取得するMIBのオブジェクト名指定します。スクリプトに障害判定のためのJavaScriptを指定します。
delta
2回連続取得した数値型のMIBの差分でポーリングするモードです。パラメータに取得するMIBのオブジェクト名を指定します。スクリプトに障害判定のためのJavaScriptを指定します。
get
取得したMIBで判断するポーリングモードです。パラメータには、取得するMIBのオブジェクト名を指定します。スクリプトに障害判定のためのJavaScriptを指定します。
hrSystemDate
ホストリソースMIBのhrSystemDateを取得します。ポーリングを実施しているパソコンの時刻の差分も取得できます。
stats
複数数値データのMIBを取得して、最大、最初、平均を計算して判断します。hrProcessorLoadのすべて取得してCPU使用率の平均を計算するために使用できます。パラメータに取得したいMIBのオブジェクト名、スクリプトに障害の判定条件を指定します。
traffic
対象のifTableのMIBを取得して通信量を計算します。取得可能ならば64ビットのカウンター値を利用します。送受信のバイト数、パケット数、エラー数、それぞれの単位時間値を取得できます。パタメータに取得したいLANポートのifIndexを指定します。スクリプトに障害判定条件を指定します。
です。
再起動監視
sysUpTimeはSNMPのエージェントが起動してからの経過時間を1/100秒単位で示すMIBです。当然、時間とともに増えていきます。前回のポーリングで取得した値から減った場合は再起動したと判断できます。この監視を簡単に行うのがsysUpTimeモードです。
経過時間を32ビットの正数で表すので約500日程度経過すると0に戻る問題に対応する必要がありますが、今のところ対応していません。
インターフェイス状態
監視対象のインターフェイス(LANポート)の状態を監視するためには、ifOperStatus(動作状態)とifAdminState(設定)のMIBを利用します。ifAdminStateがUPでifOperStatusがUPが正常です。ifAdminStateがDOWNならばifOperStatusがDOWNでも有効にしてないポートなので正常です。ifAdminStateがUPでifOperStatusがDOWNは障害です。有効にしてもリンクがアップしない状態だからです。ケーブルが接続されていない、対向の機器がダウンしているなどが考えられます。TWSNMPでこの監視を行うには、ifOperStatusモードのポーリングを設定します。
このポーリングの設定にはインターフェイスのインデックスが必要です。自動発見で登録したポーリングは自動で設定しています。手動で設定する場合は、MIBブラウザーでifTableの取得して監視したいLANポートのインデックスを確認してください。
サンプルテンプレート
ここで説明したモードのサンプル定義です。
{
"Name": "SNMP再起動監視",
"Type": "snmp",
"Mode": "sysUpTime",
"Level": "low",
"Descr": "対象ノードの再起動を検知",
"AutoMode": ""
},
{
"Name": "インターフェイス監視",
"Type": "snmp",
"Mode": "ifOperStatus",
"Params": "$i",
"Level": "low",
"Descr": "インターフェイスの状態を監視",
"AutoMode": "index:ifIndex"
},
{
"Name": "SNMP通信量測定",
"Type": "snmp",
"Mode": "traffic",
"Params": "$i",
"Level": "off",
"Descr": "インターフェイスの通信量を測定",
"AutoMode": "index:ifIndex"
},
{
"Name": "プロセス起動数監視",
"Type": "snmp",
"Mode": "count",
"Params": "hrSWRunName",
"Filter":"プロセス名を指定",
"Script":"count > 0",
"Level": "low",
"Descr": "プロセスの起動数の監視、フィルタでプロセス名を指定",
"AutoMode": "disable"
},
{
"Name": "プロセス再起動監視",
"Type": "snmp",
"Mode": "process",
"Params": "",
"Filter": "プロセス名",
"Script": "changed == 0",
"Level": "low",
"Descr": "監視対象のプロセスのPIDの変化を検知",
"AutoMode": "disable"
},
{
"Name": "TCP接続数",
"Type": "snmp",
"Mode": "get",
"Params": "tcpCurrEstab.0",
"Script": "tcpCurrEstab < 10000",
"Level": "low",
"Descr": "TCP接続数の監視",
"AutoMode": ""
},
{
"Name": "LANポート送受信",
"Type": "snmp",
"Mode": "ps",
"Params": "ifInOctets.$i,ifOutOctets.$i",
"Script": "Mbps=8*(ifInOctets_PS+ifOutOctets_PS)/1000000;Mbps < 1000",
"Level": "low",
"Descr": "LANポートの送受信の合計量をMbps単位で測定",
"AutoMode": "index:ifIndex"
},
{
"Name": "CPU平均使用率",
"Type": "snmp",
"Mode": "stats",
"Params": "hrProcessorLoad",
"Script": "avg < 90.0",
"Level": "low",
"Descr": "CPU平均使用率",
"AutoMode": ""
},
いいなと思ったら応援しよう!
