• 締切済み

Linux上で動くシステムでリソースを監視する方法

Linux上でCで組んだプログラムで、CPU使用率、メモリ使用率、ディスク使用率を取り込んで使用率が高い場合はエラーを返すような処理を行わせたいと思っているのですが、どういった方法を用いればこういったデータを入手することはできるのでしょうか? また一般的にはどういった方法で実装されるのでしょうか? 現時点では、メモリとCPUに関してはproc/statやproc/meminfoに格納されているようなのでそこから取り出せるのではないかと思っているのですが、ディスク使用率はちょっと想像がつかないもので… 基本的にツールなどは使わずに実装したいのですけど、実現する方法はありますでしょうか? よろしければ教えていただけると幸いです。

みんなの回答

  • NINJA104
  • ベストアンサー率43% (133/306)
回答No.2

一般的な手法をお答えします。 snmpデーモンを走らせておいて、snmpwalk(snmp-utils)コマンドで該当の情報を取得します。 具体的な使い方については、この snmpを利用した mrtgというサーバの各種トラフィック状況を監視しグラフ化するツールがありますので、これを参考にすれば良いかと思います。 > RedHat系統のLinuxディストリであれば、これらは全てインストールCD/DVDに含まれています。 それと、disk使用率については df コマンドを利用すれば簡単に取得出来ますね。 例: > df -h これらをシェルスクリプトやperlスクリプト等で取得し、ある一定の閾値を超えたら stderrへエラーを出力する様にしてやれば、通常はrootにその情報がメールで届きます。 また定期的に監視する為には cronの定義ファイルに追記すれば良いでしょう。

回答No.1

muninを使えば簡単にご希望のことはできますね。ツールを使いたくなくてもそれらのソースを参照すればいいのでは? ふつうはsnmpを使うことが多いと思いますが。