MonitはApacheを監視対象外としてリストします


11

monitのドキュメントに従ってmonitをインストールして構成しました。Apache以外のすべてのサービスは実行中としてリストされていますが、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の監視モードをアクティブとしてリストします。

サーバーはCentOS 5.4を実行しています。

親httpdサーバーのPIDファイルは正しい:

[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

回答:


13

pidファイルの内容がApacheマスタープロセスのpid(つまり、httpdrootとして実行されるプロセス)と一致することを確認してください。pidファイルが古い可能性があります。

古くなっている場合は、Apacheマスタープロセスのpidを取得し、問題のpidはecho 1234 > /var/run/httpd.pidどこに1234あるのかを確認します。

その後、実行monit monitor apacheしてそのサービスの監視を再開します。


2
PIDファイルは正しいものでしたが、実行monit monitor apacheすると開始され、サービスを再起動した後は正常に動作しているようです。また、Webインターフェイスの[モニターの有効化]ボタンをクリックしてみてください。
dunxd

1

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

名前ベースの仮想ホストを使用している場合は、ホスト名またはサイト名を渡す必要がある場合があります。


CentOS 5.4です。PIDファイルが正しい。
dunxd

CentOS 5サーバーで設定を使用すると、次のようになりますProcess 'apache' status Does not exist monitoring status monitored
ewwhite

その出力はどこにありますか?
dunxd

pidfileパス「/var/run/httpd/httpd.pid」を引用する必要があります。また、VirtualHostsディレクティブが必要になる可能性について、最初の回答に記載したメモも参照してください。
ewwhite

引用符の有無にかかわらず違いはありません。
dunxd
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.