メトリックプラグイン - mackerel-plugin-snmp

mackerel-plugin-snmp はSNMPによりネットワーク機器から任意の数値のMIB情報を取得し、メトリックとして監視できます。

本プラグインはSNMP v2cに対応しており、SNMP Trapには対応していません。

監視できるメトリック

  • SNMP v2cで取得可能な任意の数値のMIB情報をメトリックとして投稿します。

指定可能なオプション

プラグインに指定可能なオプションは以下の通りです。

オプション 説明 初期値
-name グラフ名 snmp
-unit グラフに属するメトリックの単位(指定可能な単位はこちらunitを参照) float
-host SNMPリクエストを送るホスト localhost
-community コミュニティ名 public
-tempfile 一時ファイルの保存先

取得するメトリックの定義は OID:NAME[:DIFF?][:STACK?][:COUNTER?] のように半角コロン(:)区切りで定義します。各項目はそれぞれ以下の通りです。

項目 説明 必須 初期値
OID MIB値を取得するOID(※MIB名での指定はできません)
NAME メトリック名
DIFF カウンター値として差分表示するか(0:しない/1:するで指定) 0
STACK 積み上げ表示とするか(0:しない/1:するで指定) 0
COUNTER カウンターのビット数を uint32 もしくは uint64 で指定

COUNTER の指定について

  • 監視対象のカウンターがオーバーフローした場合、前回との差分が正しく計算できず、グラフ描画の連続性が損なわれてしまうため、特に 32 ビットのカウンターを監視対象にする場合は指定することを推奨します。

エージェントへの設定例

プラグインはオプション、メトリック定義の順で指定する必要があります。

コミュニティがpublicで、OIDが.1.2.3.4.5.6.7のMIBを、グラフ名foobarというメトリック名で、差分/積み上げ表示をともにしない投稿する設定は以下のようになります。

[plugin.metrics.snmp]
command = ["mackerel-plugin-snmp", "-name", "foo", "-community", "public", ".1.2.3.4.5.6.7:bar:0:0"]

同じグラフに複数のメトリックを投稿する場合、メトリックの定義を複数並べることで対応できます。

[plugin.metrics.snmp]
command = ["mackerel-plugin-snmp", "-name", "foo", "-community", "public", ".1.2.3.4.5.6.7:bar:0:0", ".1.2.3.4.5.6.8:fuga:0:0"]

上記設定をターミナルなどから直接実行して確認するには、以下のように実行してください。

mackerel-plugin-snmp -name foo -community public ".1.2.3.4.5.6.7:bar:0:0" ".1.2.3.4.5.6.8:fuga:0:0"

トラブルシューティング

メトリックが取得できない

メトリックが取得できない場合、OIDの指定が誤っている可能性があるため、snmpgetコマンドでOIDが参照可能かご確認ください。

また、OID配下にツリーが含まれるものは監視できないため、snmpwalkコマンドではなく必ずsnmpgetコマンドによる事前確認をお試しください。

command timed out が発生する

SNMPによる疎通不可もしくはレスポンスに時間がかかっている可能性があります。 snmpgetコマンドでOIDが正常に参照可能かご確認ください。

また、プラグインのオプション指定に誤りがある場合に正しく通信が行えず、タイムアウトとなる場合があります。 エージェントへの設定例を参考に、正しくオプションが指定されているかご確認ください。

リポジトリ

https://github.com/mackerelio/mackerel-agent-plugins/tree/master/mackerel-plugin-snmp