Discourse-health-check: Discourse サーバーのワンショット CLI 概要

自分のフォーラム用に作成した小さな Bash スクリプトで、Discourse サーバーの健康状態を一目で確認できます。この種のスナップショット的な概要が役立つ方に共有します。

システムリソースを確認: Docker、Discourse サービス (Postgres、Redis、Nginx、Unicorn、Sidekiq)、バックアップの最新性、TLS、およびセキュリティの基本事項。最後に「正常」「警告」「重大」のサマリーを表示し、cron に適した終了コードを返します。

インストール

curl -O https://raw.githubusercontent.com/haydenjames/discourse-health-check/main/discourse-health-check.sh
chmod +x discourse-health-check.sh
sudo ./discourse-health-check.sh
```\nソース、オプション、および cron の例は README に記載されています:

https://github.com/haydenjames/discourse-health-check



---

## **[新バージョン v1.0.4](https://github.com/haydenjames/discourse-health-check/)**:

2 つの修正:

1. Discourse は Unicorn を Pitchfork に置き換えました(2026.2 でデフォルトになり、2026.4 で Unicorn が完全に削除されました)。そのため、Web サーバーのチェックは両方を検出するように変更されました。6月にこの問題を指摘してくれた @RGJ に感謝します。

2. サービスのプロブが自身のコマンドラインと一致していました。`pgrep -f <name>` を使用すると、pgrep が自身と一致してしまい、サービスが実際に稼働しているかどうかに関わらずチェックがパスしてしまいました。**Sidekiq は 1.0.0 以降、常に「稼働中」と報告していました**。実際には停止している可能性があっても、緑色のチェックマークと cron からの終了コード 0 が返されていました。これは 1.0.1 の Puma の誤検知と同じ根本原因であり、修正されたのではなくリネームされていたことが判明しました。
「いいね!」 9

Discourse は Puma を実行しません。

「いいね!」 3

ユニコーン。修正いただき、ありがとうございます。

「いいね!」 1

ピッチフォークかよ、今どき!

「いいね!」 2

素敵な提案、ありがとうございます!

バックアップについては、最新のバックアップが書き込まれてから読み込まれているかを確認することをお勧めします。これは、オフサイトにコピーされたかどうかを確認するための代理指標です(最新のものだけでなく、すべてを確認することも検討してください)。

もし1週間以上、どのバックアップもオフサイトにコピーされていない場合、それは警告に値します。

stat -c %Y から stat -c %X を引くか、あるいは単に比較することで確認できると思います。バックアップファイルが書き込まれてから読み込まれた場合、これらは異なる値になります。)

「いいね!」 5

@Ed_S 素晴らしい提案ですね。v1.0.2 で追加しました。最新のバックアップの atime と mtime を比較し、書き込まれてから読み込まれていない場合に警告を表示します。atime が信頼できない環境では、noatime チェックで適切にスキップします。クレジットを記載しました。ありがとうございます!

「いいね!」 4