monitのドキュメント に従って、monitをインストールして構成しました。 Apache以外のすべてのサービスはRunningと表示されますが、ApacheはNot Monitoredと言います。
Monitの設定の関連する行は次のとおりです。
check process Apache with pidfile /var/run/httpd.pid
group www
start program = "/etc/init.d/httpd start"
stop program = "/etc/init.d/httpd stop"
if failed Host localhost port 80
protocol http then restart
if 5 restarts within 5 cycles then timeout
サーバーから http:// localhost/server-status および http:// localhost にアクセスできます。 Monitは、Apacheの監視モードをactiveとしてリストします。
サーバーはCentOS 5.4を実行しています。
PIDファイルは親httpdサーバーに対して正しいです:
[server ~]$ cat /var/run/httpd.pid
2905
[server ~]$ ps auxc | grep httpd
root 2905 0.0 0.9 26952 4808 ? Ss 11:36 0:00 httpd
Pidファイルの内容がApacheマスタープロセスのpid(つまり、ルートとして実行されるhttpd
プロセス)と一致していることを確認します。 pidファイルが古くなっている可能性があります。
古くなっている場合は、ApacheマスタープロセスのPIDを取得し、echo 1234 > /var/run/httpd.pid
、 どこ 1234
は問題のpidです。
その後、monit monitor Apache
そのサービスの監視を再開します。
OSのバージョン/ディストリビューションは提供していませんが、CentOS 6では、監視する必要があるPIDファイルは次の場所にあります:/var/run/httpd/httpd.pid
したがって、次のように変更します。
check process Apache with pidfile /var/run/httpd/httpd.pid
ちなみに、CentOS 5のApache PIDファイルは/var/run/httpd.pid
編集:PIDパスも引用します。
Monitメーリングリストには、使用しているプロトコルテストに関するメモがあります。
http://lists.gnu.org/archive/html/monit-general/2004-12/msg00057.html
名前ベースの仮想ホストを使用している場合は、ホスト名またはサイト名を渡す必要がある場合があります。