ここで例えば、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.