SHOEISHA iD

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

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

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

net-snmpについて

net-snmpについて(独自監視項目の追加) - 後編

net-snmpによる拡張MIBの設定方法について(後編)

ダウンロード snmp_mibfile_2nd.lzh (4.5 KB)

アラーム関係の関数について

7.6 アラーム関係の関数について

 mib2cを使って生成されたソースファイルはほとんど完成してて、必要なのは値の設定と取得処理を付加するくらいですが、しかしそれだけでは実際のエージェント開発の現場では困る場合があります。

 例えばアプリケーションが定期的に外部ファイルに必要な情報を出力するような場合、エージェント側はget-requestされた時にファイルにアクセスしていたのではレスポンスが遅くなってしまいます。それを防ぐために、定期的な間隔でファイルへのアクセスを行う必要があります。

 net-snmpでは、マネージャからの要求が無くとも定期的に実行できるように、下記の関数を用意しています。

  • unsigned int snmp_alarm_register(
      unsigned int seconds,
      unsigned int flags,
      SNMPAlarmCallback * callback,
      void * clientarg );

    callback(引数:clientarg)に設定した自前の関数を秒単位で定期的に呼ばれるよう設定する関数です。
  • unsigned int snmp_alarm_register_hr(
      struct timeval t,
      unsigned int flags,
      SNMPAlarmCallback * callback,
     void * clientarg );

    動作はsnmp_alarm_registerと同じですが、呼ばれる間隔がマイクロ秒まで設定可能です。
  • void snmp_alarm_unregister(
      unsigned int clientreg );

    特定のアラーム処理を解除する関数です。
  • void snmp_alarm_unregister_all( void )
    全てのアラーム処理を解除する関数です。

 引数の詳細は下記の通りです。

  • callback
    設定された間隔で定期的に呼ばれる関数、自前で用意する必要があります。
  • clientarg
    定期的に呼ばれる関数への引数です。
  • seconds
    呼ばれる間隔です。
  • flags
    SA_REPEAT を設定すると、seconds の間隔で呼び、0 を設定すると、seconds 後に一回だけ呼ばれます。
  • t
    秒とマイクロ秒を設定する構造体です。
  • clientreg
    snmp_alarm_register およびsnmp_alarm_register_hr の戻り値です。

 今回はhandle_mtuTimer関数内で set-request で呼ばれまた際に、入力された値によってsnmp_alarm_register/snmp_alarm_unregisterを呼んでいます。

 snmp_alarm_register で登録された関数(timer_matsutest)では、30回呼ばれると(30秒間タイマーオフが呼ばれなかった場合)send_mtuTimerTrap_trapを呼んでTrapが発行され、snmp_alarm_unregisterを呼んでタイマーをオフします。

 ソースファイルの編集は以上になります。以降は作成したソースファイルをnet-snmpから呼ばれるように設定する方法について述べます。

次のページ
作成したエージェントの組込方法

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

net-snmpについて連載記事一覧

もっと読む

この記事の著者

赤松 エイト(エイト)

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

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

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

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/2991 2008/09/24 14:00

イベント

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

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

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

メールバックナンバー