SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

net-snmpについて

net-snmpについて(機器監視)

net-snmpによる機器監視の具体的な方法について

  • X ポスト
  • このエントリーをはてなブックマークに追加

5. 機器監視(4/4):set-request

5.8 set-request の例

 上記では全てマネージャからの値の要求に対して応答する形で値が返されていました。これらは区分としてはget-requestになります。

 それに対してset-requestは、マネージャからエージェントに対し、値を設定することでエージェントの挙動を変えることを指しています。

 一例として、prTableの監視を参考にします。prTableでは特定のプログラムおよびデーモンの起動確認を行えますが、何らかの状況で起動していない時、規定されたコマンドを実行することが出来ます。そのためには、やっぱりsnmpd.confへの編集が必要です。

 今回は例として、httpdへの再起動コマンドを設定します。snmpd.confに下記を追記し、snmpdを再起動します。

procfix httpd /sbin/service httpd start

 再起動後、snmpwalkでprTableを取得すると、下記のようにprErrFixCmdが変更されているはずです。

% service httpd start
% snmpwalk -v 2c -c localcom localhost prErrFixCmd
UCD-SNMP-MIB::prErrFixCmd.1 = STRING:
UCD-SNMP-MIB::prErrFixCmd.2 = STRING:
% service snmpd restart
% snmpwalk -v 2c -c localcom localhost prErrFixCmd
UCD-SNMP-MIB::prErrFixCmd.1 = STRING: /sbin/service httpd start
UCD-SNMP-MIB::prErrFixCmd.2 = STRING:
% 

 httpdを停止させるとエラー情報を取得できますが、その状況で下記コマンドを叩きます。

% service httpd stop
% snmpwalk -v 2c -c localcom  localhost prTable
・・・
UCD-SNMP-MIB::prCount.1 = INTEGER: 0
UCD-SNMP-MIB::prCount.2 = INTEGER: 1
UCD-SNMP-MIB::prErrorFlag.1 = INTEGER: error(1)
UCD-SNMP-MIB::prErrorFlag.2 = INTEGER: noError(0)
UCD-SNMP-MIB::prErrMessage.1 = STRING: Too few httpd running (# = 0)
UCD-SNMP-MIB::prErrMessage.2 = STRING:
・・・
% 
% snmpset -v 2c -c securecom 192.168.1.12 prErrFix.1 i 1
% 

 securecom でsnmpsetしているのは、snmpd.conf のaccess設定にて、write権限が許可されているのはsecurecomだけだからです。詳細は、4.4章を参照してください。

 snmpsetコマンドを実行すると、内部で/sbin/service httpd startが実行され、正常に実行されれば(つまりhttpdが正常に起動すれば) prCount.1 は 9 となり、prErrorFlag.1 の値は noError(0)になります。

% snmpwalk -v 2c -c localcom  localhost prTable
・・・
UCD-SNMP-MIB::prCount.1 = INTEGER: 9
UCD-SNMP-MIB::prCount.2 = INTEGER: 1
UCD-SNMP-MIB::prErrorFlag.1 = INTEGER: noError(0)
UCD-SNMP-MIB::prErrorFlag.2 = INTEGER: noError(0)
UCD-SNMP-MIB::prErrMessage.1 = STRING:
UCD-SNMP-MIB::prErrMessage.2 = STRING:
・・・
% 

 snmpsetコマンドはエージェントにMIB情報の書き換えを指示するコマンドです。MIB情報が変更されたことを受けて、その変更された値をもって規定の行動を行ったのです。

 尚、今回はprTableを例とし、procfix句を使用しましたが、同様の機能がextTableにも存在します。execfixディレクティブで定義することが可能で、文法はprocfixディレクティブと全く一緒です。

5.9 終わりに

 get-requestは、これら以外にもいろんな情報を取得できます(例えば特定のNICの死活情報や受信パケット総数、特定プリンタの紙残量の取得など)。また、set-requestも同様に、利用箇所が多く存在しています。

 しかしこれらはすべてマネージャから要求を受けて取得したものであり、エラーが発生したことをエージェント側から上がってくるようにするともっと便利です。

 この、“エージェントからマネージャに向けて情報を配信する機能”こそ、3番目の区分である、Trap です。次回は、この Trap を行うための設定を説明したいと思います。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
net-snmpについて連載記事一覧

もっと読む

この記事の著者

赤松 エイト(エイト)

(株)DTSに勤てます。WebアプリやJavaやLL等の上位アプリ環境を密かに憧れつつも、ず~っとLinuxとかHP-UXばかり、ここ数年はカーネル以上アプリ未満のあたりを行ったり来たりしています。mixiもやってまして、こちらは子育てとか日々の日記メインです。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/2865 2008/09/10 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング