第6回 サーバ異常をSNMPで通知させるにはSNMPによるネットワークモニタリング「第2版」(3/6 ページ)

» 2007年05月25日 07時59分 公開
[大澤文孝,ITmedia]

 ここで例えば、httpdプロセスに対して行ってみよう。


# service httpd stop

 そして、prErrorFlag.1を参照すると「1」が返ってくることが分かる。


$ snmpget -c hogeprivate -v 1 localhost prErrorFlag.1
UCD-SNMP-MIB::prErrorFlag.1 = INTEGER: 1

 もちろんhttpdをもういちど起動してから、ふたたびprErrorFlag.0を参照すれば「0」になる。

 つまり、このprErrorFlagを参照することで、プロセスの死活状態を検出できるというわけだ。Net-SNMPでは、あるオブジェクトの値が特定の値になったときに、1)コマンドを実行する、2)SNMPトラップを送信する、といったディレクティブがある。

 このうちprocfixというディレクティブを使って、プロセスがなくなったときに自動的に再起動する例についてはTIPS「24時間稼働のために――サーバ管理者が知っておくべき自動復帰ノウハウ」を参照してほしい。

 SNMPトラップを送信する方法については、回を改めて説明する。

表3■prTableサブツリー

名称 OID 意味
prIndex ucdavis.2.1 インデックス番号
prNames ucdavis.2.2 プロセス名。procディレクティブに指定した名称
prMin ucdavis.2.3 存在しなければならない最小値。prCountがこの値を下回ったときには、prErrorFlagが1になる
prMax ucdavis.2.4 存在できるプロセスの上限値。prCountがこの値を上回ったときには、prErrorFlagが1になる
prCount ucdavis.2.5 現在存在しているプロセス数
prErrorFlag ucdavis.2.100 プロセスが異常であることを告げるフラグ。プロセス数がprMin < prCountまたはprMax < prCountになったときに1になる
prErrMessage ucdavis.2.101 prErrorFlagが1であるときのエラーメッセージ
prErrFix ucdavis.2.102 このフラグを1に設定すると、prErrFixCmdで指定したコマンドが実行される
prErrFixCmd ucdavis.2.103 prErrFixが1になったときに実行されるコマンド。procfixディレクティブで指定する(関連記事)。実行結果は、extTable(ucdavis. 8)から参照できる

ディスクの監視

 次にディスクの監視をしてみよう。

 ディスクの状況を知らせるのは、dskTable(ucdavis.9)サブツリーだ。dskTableサブツリーもまた、プロセスの監視と同様に、監視対象となるパーティションを事前に設定しておかなければならない。監視対象は、diskディレクティブで設定する


disk [マウント先のパス] [最小値(またはパーセンテージ)]

 マウント先のパスは、例えば「/」や「/boot」、「/home」や「/var」といったものだ。

 最小値は、エラーとして警告する際の、残り空き容量の閾値を指定する。Kバイト単位またはパーセンテージだ。省略したときには、100Kバイトと見なされる。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ