SNMP対応サービスを監視するPerlスクリプトがあります。Perl:SNMP - ワイルドカードOID
私は設定ファイルに複数のサービスがあり、各サービスには収集するメトリクスのリストがあります。
例:
[switch]
switch_stuff1 = 1.3.6.1.2.1.7.1.0
switch_stuff2 = 1.3.6.1.2.1.7.4.0
switch_stuff3 = 1.3.6.1.2.1.6.2.0
switch_stuff4 = 1.3.6.1.2.1.6.3.0
switch_stuff5 = 1.3.6.1.2.1.6.5.0
[router]
router_stuff1 = 1.3.6.1.2.1.6.8.0
router_stuff2 = 1.3.6.1.2.1.6.8.0
router_stuff3 = 1.3.6.1.2.1.6.9.0
[database]
db_stuff1 = 1.3.6.1.2.1.6.4.0
db_stuff2 = 1.3.6.1.2.1.6.5.0
スクリプトは、設定ファイルを介してループ、すべてのメトリックに関する情報を取得し、CSVファイルに出力を書き込みます。
今、私は助けが必要です。
SNMPパスにワイルドカードを使用して収集するロジックを実装するように求められました。だから私の設定ファイルは次のように検討する必要があります:
[switch]
switch_stuff1 = 1.5.1.6.*
switch_stuff2 = 1.45.*.12
コレクションが起こるときに、それはこのようなループ何とかなります:
switch_stuff1
1.5.1.6.0 – found, continue
1.5.1.6.1 – found, continue
1.5.1.6.2 – not found, stop
switch_stuff2
1.45.0.12 – found, continue
1.45.1.12 – found, continue
1.45.2.12 – found, continue
1.45.3.12 – not found, stop
私は現在、ネットを使用しています:: SNMP図書館:
http://metacpan.org/pod/Net::SNMP
これを行うことは可能でしょうか?どういうわけか、get_entriesメソッドやget_tableメソッドを使って "snmpwalk"をシミュレートすることを考えていましたが、うまくいくかどうかはわかりません。
誰かが助けてくれ、少なくとも私が正しい方向に向いていれば、とても感謝しています。
ありがとうございます。