見出し画像

TWSNMP FCの問い合わせ回答:TRAPをカウントするポーリングのフィルター設定について

今朝は5時から開発開始です。助手の猫さんも起きてきて、ご飯を食べたあと、少し甘えてから、かみさんの布団に戻って寝ています。

昨日のよるメールでTWSNMP FCに関する問い合わせがありました。

TWSNMP FC 開発者 様

ネットワーク管理にTWSNMP FC(ver1.34)を使用させていただいております。1点、ポーリングの設定についてご質問させてください。
ネットワーク内に機器Aがあり、当該機器の障害時にSNMP TRAP(TRAP名:「alarm*****」, *****は障害内容)をTWSNMP FCに送信する設定となっています。このTRAPを受信した際にメール発報等を行いたいと考え、

「TWSNMP FCのポーリング辞典:SNMP TRAPをモニタする」
https://note.com/twsnmp/n/n9fbe03260952

を参考にして以下のとおりポーリングルールを作成しました。

ノード:機器A
種別:SNMP TRAP
モード:count
フィルター:alarm
判定スクリプト:count<1

その結果、機器Aから送信されたTRAPについては正常に動作しましたが、ここで問題がありました。ネットワーク内にある機器Bも同様のTRAPを送信する設定になっており、上記ルールではこちらもカウントしてしまいます。
このような状況で、機器AからのTRAPのみカウントしたい場合はどのように設定すればよいでしょうか。御教示いただければ幸いです。

TWSNMP FCの問い合わせメール

確かに

の説明通りだと、特定ノードからのTRAPだけをカウントする設定になっていませんでした。
正規表現のフィルターに送信元のIPを含めれば、特定のノードからのTRAPだけカウントできます。
しかし、試してみるとわかりにくい仕様になっていることがわかりました。
正規表現で検索する対象のログは、TRAPの場合

Enterprise
FromAddress	192.168.1.9:47434
GenericTrap	0
SpecificTrap	0
Timestamp	0
Variables	sysUpTimeInstance=9.83日(84963600)
snmpTrapOID.0=linkDown
ifIndex.3=3
ifAdminStatus.3=1(up)
ifOperStatus.3=2(down)

のように改行が入っているため、正規表現の書き方に一工夫必要です。
この例の場合、送信元は192.168.1.9です。TRAPの種類はlinkDownです。
改行をまたいでも一致するようにするためには、[\s\S\n]*と書くようです。
ということでフィルターを

From.*192\.168\.1\.9[\s\S\n]*linkDown

のように設定すれば、192.168.1.9からのlinkDownだけカウントする対象にできます。

TRAPのポーリングは、TRAPを表示している画面から作成できるようにしたくなってきました。

この画面にボタンをつけて自動でポーリングを作成できるようにするアイデアです。

「TWSNMP FCのポーリング辞典:SNMP TRAPをモニタする」の記載も改定しました。

明日に続く


開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。