none
Windowsの snmp(エージェント)でのプロセスの取得について RRS feed

  • 質問

  • 主に WindowsServer 2012R2を使用しています。

    汎用的な監視ツールを使い snmpで方々のサーバーのプロセスの稼働/停止を監視しようとしていますが、
    Windowsの場合は数十秒~数分遅れて更新されるようです。

    簡略化すると、snmpwalk 等のコマンドで
     .1.3.6.1.2.1.25.4.2 (HOST-RESOURCES-MIB::hrSWRunTable)
    の下にあるように見える起動中のプロセスを取得しようとすると、
     ・プロセスを起動してから数十秒~数分しないと値が取れるようにならない。
     ・プロセスを停止してから数十秒~数分したあとで値が取れないようになる。

    Linux(net-snmp)を対象にする場合はほぼリアルタイムで更新されるようなのですが、
    Windowsは snmpでプロセスの起動を監視するということはお勧めではないでしょうか?
    もしくは snmpで値が更新されるまでの時間は調整可能なものでしょうか?

    ご存知の方がおられましたら教えていただけますでしょうか?

    2015年4月16日 6:37

すべての返信

  • OSが2003か2008の頃の経験的な話になりますが・・・

    最新の値が返ってきた後、その後の120秒間は、何度GetRequestを実行しても同じ値しか返って来なかったような記憶があります。
    120秒経過した後の最初のGet-Requestのときだけその時点の最新の状況が得られますが、その後の120秒間はまた同じ値しか返らないという動きの繰り返しになっていました。

    おそらく、GetRequestが来る度にSNMPサービスがOSに最新の情報を取りにいくと負荷が高まるので、一度OSから情報をとったらSNMPサービス上のキャッシュのようなものに情報を保存しておいて、120秒間はGetRequestが来てもOSから情報を得ないでキャッシュ上の情報を返しているのではないかと推測しました。

    2015年4月16日 11:53
  • 情報ありがとうございます。
    自分の環境でも Windows2008R2や Windows7等相手に snmpwalkを試してみましたが、やはり同様に数分遅れるようでした。

    他にも事例があるようですし、snmpでのプロセス監視は完全にはリアルタイムではない
    というのが仕様、ということなのでしょうか。

    Windowsではタスクマネージャでの一覧を、定期的に snmpエージェント用の一覧に詰め替える“何か”(サービス?タスク?)があるような動作に見えるのですが、
    そういう仕組みを説明したドキュメントとかはどこかに無いものでしょうかね。

    他に何か情報をお持ちの方がおられましたら、教えていただけませんでしょうか?

    2015年4月17日 1:10