SNMPでスクリプト返値を取得する

この記事は公開されてから半年以上経過しています。情報が古い可能性がありますので、ご注意ください。

タイトルのままです。
あるサーバ①で特定のスクリプトを実行した結果を他のサーバ②で取得します。

サーバ①の設定

SNMPで返値を見る為のスクリプトを書いておきます。
今回は、pingでサーバ②との通信レイテンシ(ミリ秒)を計るスクリプトにしました。

SNMPエージェントをインストール。

下記のように設定ファイルに追記します。

上部の記述の意味としては、情報を取得するだけ(read-only=ro)の、
52.197.×××.×××/32からのアクセスを許可する、
「monitor」という名前のcommunity(グループ)を定義しています。
スクリプト行の「ping-sec-count」に関しては後ほど分かります。

snmpdを起動します。

サーバ②の設定

snmpwalkコマンドが使えるよう、下記インストールを実施。

サーバ①のIPアドレスを指定して、スクリプトの返値を見てみます。

「-v 1」はSNMPバージョン1を表します。
バージョン1の認証方法は「コミュニティ名」なので、
「-c monitor」とすることで認証が通り、情報を取得できるようになります。

「nsExtendOutputFull」は取得する情報(スクリプトの返値)を指定しています。

スクリプトの返値が表示されました!
サーバ①のsnmpd.confで書いた「ping-sec-count」も、ここに表示されています。

Exec format error

私がちょっとはまったエラーです。
サーバ②でsnmpwalkを実行すると「Exec format error」と表示されてしまいます。

サーバ①側のスクリプト先頭にシバン(#! /bin/sh)を記載すると直りました。
ちゃんと書いてるよ!と思っても、案外「!」が抜けてたりして。

その他

全体的な情報取得

MIBを含めた全体的な情報を取得

MIBを指定してスクリプトの返値を取得

投稿者プロフィール

sato
2015年8月入社。弊社はインフラ屋ですが、アプリも作ってみたいです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.