24時間稼働のために――サーバ管理者が知っておくべき自動復帰ノウハウSNMPによるネットワークモニタリング「第2版」(2/2 ページ)

» 2007年05月23日 07時00分 公開
[大澤文孝,ITmedia]
前のページへ 1|2       

・プロセスを実行する

 httpdプロセスがない状態で、次のようにsnmpsetコマンドを実行する。


$ snmpset -c hogeprivate -v 1 localhost prErrFix.1 i 1

 これは「prErrFix.1」にInteger型の値「1」を設定するという意味だ。なお、「prErrFix.1」の「.1」は、snmpd.confに記述した「1番目のproc(procfix)」であることを示している。

 これにより、procfixで指定してあるコマンドが実行される。すなわち「/sbin/service httpd restart」が実行され、プロセスが復帰するというわけだ。

・自動復帰させる

 procfixは、snmpsetコマンドなどで、「prErrFix.インデックス番号」に「1」を設定したときに活動するものにすぎず、プロセスがなくなったときに自動復帰するというわけではない。プロセスがなくなったときに自動復帰させるには、さらに設定が必要だ。

 そのためには、snmpd.confに対してリスト2のように追記し、定期的にモニタリングする。

リスト2■プロセスをモニタリングする

# _internaluserという内部利用のユーザーを作る
createUser _internaluser MD5 "internalpass"
iquerySecName _internaluser
rwuser _internaluser
# イベント定義
setEvent httpdfix prErrFix = 1
# モニタリング
monitor -u _internaluser -r 60 -e httpdfix "procTable" prErrorFlag != 0

 リスト2では、まず、内部ユーザー_internaluserを作成している。そしてmonitorディレクティブを使って、そのユーザー名で接続し、prErrorFlagが0でない場合に――つまり何らかのプロセスがエラーを発生しているならば――、httpdfixというイベントを発生させるようにした。

 「-r」オプションは監視の間隔(秒)を指定するものだ。リスト2では「-r 60」となっており、60秒間隔でチェックしている。この間隔は適時調整してほしい。

 httpdfixというイベントは、setEventディレクティブを使って、prErrFixに1を設定する定義した。これにより、procfixで指定しておいたコマンドが実行される。すなわち、「/sbin/service httpd restart」が実行され、httpdプロセスが復帰するという具合だ。

この記事に関連するキーワード

オープンソース | SNMP | Linux


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ