nginxが起動していますが、Watchdogの画面ではnginxが停止していると表示されたままです

Plesk11を搭載しているサーバにおいて、nginxのステータスをWatchdogが「停止」と認識するパターンはいくつございます。

1.nginxが起動しているのに nginxのPIDファイルが不整合であるため、プロセスを把握できない
2.nginxの設定ファイルが 誤って削除済みの古いIPアドレスについて監視を行っている
3.nginxの設定ファイルが 監視している特定のIPアドレスのウェブサイトのトップページのステータスコードがエラーを返す
(本当にnginxが起動していていない場合もWatchdogは「停止」と認識しますが、それは除きます)

まず、Plesk搭載サーバで、ngixが起動しているかどうかを確認する方法は以下のFAQをご確認ください。
Plesk11でのnginxが起動状態を確認する方法を教えてください

※本FAQはWathcdogを起動させていることが前提となっています。
Watchdog サービス監視設定【Plesk11】
Plesk11でWatchdogのサービス監視の起動状態やレポートを確認する方法を教えてください

また一部コマンド操作の案内を掲載しておりますが、サポート外の内容となりますので参考情報としてご覧ください。

1.nginxが起動しているのに nginxのPIDファイルが不整合であるため、プロセスを把握できない

Watchdogのログファイルは”/usr/local/psa/var/modules/watchdog/log/monit.log ” Pleskバージョンのよっては”/var/log/plesk/modules/monit.log”に
記載されます。ログに
「monit: pidfile `/var/run/nginx.pid’ does not contain a valid pidnumber」
と出ている場合は上述の1「nginxのPIDファイルが不整合であるため、プロセスを把握できない」のケースが考えられますので、
1. nginxを再起動
1-1.Plesk>サーバタブ>サービス管理を開く
1-2.nginx 再起動ボタン(右側のオレンジ色のアイコン)を押す
2. 数分待っていただきWatchdogの更新状況をご確認ください。

コマンドラインでは以下となります。

# /etc/init.d/nginx restart 
# /usr/local/psa/admin/bin/modules/watchdog/monit -c /usr/local/psa/etc/modules/watchdog/monitrc summary
:(中略)
Process 'nginx'                     running ←【Watchdogが有効になっていて、nginxが起動を確認できた場合】
:(略)

なお、上述に当てはまらない場合は 2、3が考えられます。

2.nginxの設定ファイルが 誤って削除済みの古いIPアドレスについて監視を行っている

実際は80番ポートでnginx が起動していて、一般のウェブページ閲覧にも支障がないのに、
monit.logのログファイルを確認いただくと 「’nginx’ failed, cannot open a connection to INET[xxx.xxx.xxx.xxx:80]」とエラーが
出ているケースもあります。

代表的なケースは1つめは
「nginxの設定ファイルが 誤って削除済みの古いIPアドレスについて監視を行っている」
⇒つまり「/usr/local/psa/etc/modules/watchdog/monitrc」というファイルが古いIPアドレスの監視を残したままに
なっているが、サーバ内にはすでにそのIPアドレスは存在しない
という内容です。

Wathdogサービス監視(monitというプログラムが起動しています)は、Pleskで管理されています。そのため、monitrcという設定ファイルについては、Plesk操作でのみ更新し、手動で変更してはいけないことになっています。

monitrc の再生成は以下の手順となります。 以下を行うと、古いIPアドレスを利用した、nginxの80番ポート監視を
解除し別の有効なIPアドレスの監視に書き換えることができます。

すでにサーバ内に存在しないIPアドレスを監視してしまっている場合は、以下の操作でWathcdogのサービス監視をリセットすることができます。
1.Plesk>サーバ>拡張>Watchdog>Web Proxy Server(Nginx) をクリック
2.「サービスを監視する」のチェックを外し「OK」をクリック
3.Plesk>サーバ>拡張>Watchdog>Web Proxy Server(Nginx) をクリック
4.「サービスを監視する」のチェックを入れ「OK」をクリック
5. その後、Watchdogのサービスタブ内の更新状況をご確認ください。

コマンドラインでは以下となります。

# /usr/local/psa/admin/bin/modules/watchdog/wd --full-restart-monit
# /usr/local/psa/admin/bin/modules/watchdog/monit -c /usr/local/psa/etc/modules/watchdog/monitrc summary

3.nginxの設定ファイルが 監視している特定のIPアドレスのウェブサイトのトップページのステータスコードがエラーを返す

上述の2.同様に、実際は80番ポートでnginx が起動していて、一般のウェブページ閲覧にも支障がないのに、
monit.logのログファイルを確認いただくと 「’nginx’ failed, cannot open a connection to INET[xxx.xxx.xxx.xxx:80]」
とエラーが出ているケースの2つ目の例は
「nginxの設定ファイルが 監視している特定のIPアドレスのウェブサイトのトップページのステータスコードがエラーを返す」
⇒設定ファイル「/usr/local/psa/etc/modules/watchdog/monitrc」で指定され、監視しているIPアドレスについて
http://【監視中IPアドレス】というサイトを閲覧すると HTTPでステータスコードがエラーとなってしまうという状況です。

IPアドレスベースの仮想ホスト設定をされている場合には、
80番ポートが起動しているのに、
また、http://【監視中IPアドレス】 のアクセスについて、HTTPエラーを返しているということが
発生しえます。対策例の1つとしては、「IPアドレスベースの仮想ホスト設定を解除する」ことがあります。

1.Plesk>サーバ>ツールとリソース>IPアアドレスをクリック
2.監視対象となっている、IPアドレスをクリック
3.デフォルトサイトの、プルダウン設定を「なし」に変更し、「OK」をクリック
4.その後、Plesk>サーバ>拡張>Watchdogのサービスタブ内のレポートの更新状況を確認ください

IPアドレスに対しデフォルトサイトが設定されていて、サイト内のカスタマイズによりエラーになっている
場合もございます。通常HTTPステータスコードは500番台(502番を除く)を返すとエラーとして認識されます。

たとえば、monitrc にはnginx監視のため以下のような内容が記載されています。
「XXX.XXX.XXX.XXX」はサーバのグローバルIPアドレスです。

# Nginx
check process nginx
        with pidfile /var/run/nginx.pid
        start = "/usr/local/psa/admin/bin/nginx_control --start"
        stop = "/usr/local/psa/admin/bin/nginx_control --stop"
        if failed host XXX.XXX.XXX.XXX port 80 send "GET / HTTP/1.1\r\nHost: XXX.XXX.XXX.XXX\r\n\r\n" expect "HTTP/1\.[01x] ([1-4][0-9]{2}|502) .*\r\n" with timeout 60 seconds then restart
        if 5 restarts within 5 cycles then timeout
        every 1 cycles
        mode active

このような監視内容の場合は 実際にサーバ内で以下のようなコマンドをうち、ステータスコードを取得するのと同じようなチェックをしています。

telnet xxx.xxx.xxx.xxx 80(Enter)
GET / HTTP/1.1(Enter)
Host: xxx.xxx.xxx.xxx(Enter)

すると、以下のような出力結果が出た後、ドキュメントファイルの内容が続きます。
HTTP/1.1 200 OK  … ★ステータスコード
Server: nginx …サーバ名
Date: Tue, 17 Nov 2015 04:01:31 GMT  … 日付