Discourseサイトで502 Bad Gatewayが見つかった場合の段階的な診断はありますか?

Discourse サイトで 502 Bad Gateway エラーが発生した場合の段階的な診断手順を探しに来ました。考えられる選択肢は次のとおりです。

  1. Discourse のアップデートが失敗した可能性があります。./launcher rebuild app を使用してください。
  2. サーバーをアップデートして再起動します。

これらは、ティア 1 のサポート担当者やメールボットから得られるような応答です。

ログを確認して、環境がクラッシュした正確な理由を確認するために、他に何ができるでしょうか?その情報があれば、将来的に問題を回避する方法を学べるかもしれません。

たとえば、Discourse を定期的に ping する cron プロセスをスクリプト化し、応答が 502 または同様の戻りコードの場合は、自動的に再構築することは適切でしょうか?

再構築は、問題を解決するための非常に乱暴な方法のようにも思えます。それは診断ではありません。

私のような素人が見逃している、一般的な「Discourse の問題を診断する」ドキュメントを誰かが教えてくれることを本当に願っています。 :slight_smile:

ありがとうございます!

ここの多くの投稿を読んだところ、通常、フォーラム管理者は502エラーの原因ではなく、プラグインまたはコアのエラーです。そのため、それらの問題を回避するためにできることは特に多くありません。

コンソールログは常に役立ちます。多くの場合、問題のあるプラグインを特定できます。

「いいね!」 3

このVPSではコンソールを開くことはできますが、テキストウィンドウが制限されています。
コンテナ内またはOSで確認できる特定のログはありますか?
ホストOSまたはコンテナ内に、プロセスがダウンしたことを検出するpingプロセスは既に存在しますか?
フルリビルドではなく、コンテナ内で単純なサーバーを再起動することが、この問題に対処する良い方法でしょうか?

ちなみに、最新のベータ/開発版を実行しているので、過去に経験したように、最近のアップデートでサーバーがダウンした可能性は十分にあります。現在、デフォルト以外のプラグインがインストールされているかどうかは覚えていません。

コミュニティが不満を感じることなく、診断に協力する自由がありますが、数ヶ月以内には、ユーザーを快適に保つために、より安定したバージョンに移行する必要があります。したがって、ビルドに問題がある場合は、喜んで見つけるお手伝いをします。

よろしくお願いします!

ブラウザの開発者ツールなどのブラウザログのことを言いました。

そうは思いませんが、試してみることはいつでもできます。

ディスクは満杯ですか?

これは頻繁に起こりますか?

/var/discourse/logs/rails/production.log を確認してください。

「いいね!」 4

お返事が遅くなり申し訳ありません…

ディスクの使用率は50%未満です。
RAMは80〜90%の範囲に留まり、スワップは40%未満です。問題はここから発生しているのではないかと推測しています。
ログは /var/discourse/shared/standalone/log/rails にあります。
production.log および関連するgzip圧縮ファイルには、多くのトランザクションの詳細が含まれています。何を確認すればよいでしょうか?
production_error.log のエントリは全くありません。
「頻繁に」ですか?いいえ。しかし、十分に頻繁に発生するため、少しイライラしてここに投稿することになりました。:slight_smile:
syslogを確認しましたが、何も見つかりませんでした。問題がコンテナに限定されている場合、そこに何かあるとは思えませんが、そうあるべきです。

私はDocker初心者なので、コンテナからの情報がなく申し訳ありませんが、指示があれば喜んで調査します。

ありがとうございます!

これは役に立ちません。問題はバックエンドにあります。サーバーからの応答を取得する段階にすら達していません(「Bad Gateway」はそのせいです)。

確認する必要があるのはバックエンドのRailsログです。

以下の操作を試してください。

  • 起動時の明らかなエラーがないか確認するには /var/discourse/shared/standalone/log/rails# tail -n 200 production.log
  • コンテナ内で(まず ./launcher enter app):
    Railsサーバーが応答しているか確認するには curl 0.0.0.0:3000

それ以外の場合は、すべてのプラグインを削除し、再構築してから、それらを1つずつ戻してください。

「いいね!」 1

502は、システムが起動中であるか、何らかの設定ミスがある場合に、Railsが応答を返さないときに発生します。

nginxのログを確認するとよいでしょう。

ここにある502エラーに関するスレッドのほとんどは、Discourseがアップグレードされた後に復旧しなかった場合だと思います。アップグレードが失敗したか、管理者がサービスが起動するのを十分に待たなかったかのどちらかです。

管理アクションなしで稼働中のDiscourseがあり、それが自発的に502を返し始める、と言っていますか?

そして、それが起こったとき、再起動するまで常に502を返しますか、それとも断続的に再び機能しますか?