ご注意:これは、Discourse Telegram Notifications プラグインを使用して Discourse アプリケーションの通知を送信するものとは異なるアプリケーションです。この NR アプリケーションは、サーバー、Docker、および Discourse アプリケーション全般を監視するためのものです。
忙しいシステム管理者の多くと同様に、外出先ではモバイル端末から本番環境のアプリケーションを監視できることが非常に役立ちます。
このタスクには Telegram と Node-Red(NR)を使用しています。例えば、現在実施している Discourse に関する NR タスクの一部は以下の通りです:
-
Node-Red は(1 分ごとに)特定のカテゴリ(この目的のために作成されたもの)に対して HTTPS GET リクエストを実行し、Discourse が DOWN になっている(および再び UP に戻った際、不安定な状態「flapping」を伴わない場合)を検知すると、Telegram ボットにアラートを送信します。
-
私たちの基本的な Telegram ボット
UNIXForumBotには、以下のようないくつかのチェック機能があります:
- Discourse が実行されているかを手動で確認する。
- 逆プロキシが使用している Discourse コンテナを素早く表示する。
- サーバーの稼働時間を確認する。
- ディスク使用率を確認する。
- 同じサーバー上の他の LAMP アプリケーションに ping を送る。
Telegram スクリーンショットの例:
設定と背景情報
背景情報
Discourse 実行中のコンテナを確認する理由は、問題が発生した場合やアップグレード・変更を行いたい場合に、サーバーにログインする前にどのコンテナが Discourse を実行しているかを素早く把握する必要があるためです。
私たちは常に Discourse を逆プロキシの背後で実行しています。同じサーバー上で多くの他の Web アプリ(Discourse Docker アプリと併せて実行される LAMP アプリ)を運用しているため、Discourse は以下のように構成されています:
- Discourse のデータコンテナとアプリケーションコンテナを分離する。
- Discourse アプリケーションコンテナは、ホスト(逆プロキシ)に対して Unix ドメインソケットのみを公開する。
この設定に不慣れな方のために説明すると、新しいアップグレードがリリースされた際に Discourse をビルドし、逆プロキシ設定で異なる Unix ドメインソケットを指定することで、ダウンタイムゼロで新しい Discourse バージョンに切り替えることができます。
最新のベータ版に問題が発生しても、問題ありません。以前の実行バージョンを維持している別のコンテナに素早く簡単にロールバックできます。完璧に機能します。
Discourse 監視用の Telegram ボットに使用する Node-Red 図
Telegram と NR を使用して Discourse アプリケーションを監視したい方のために、このアプリケーション用の Node-Red ノードを公開しています。お好みに合わせてカスタマイズしてください:
将来的には、Telegram アプリ内の Docker および Discourse 監視機能を拡張する予定です。
関連項目:
本番サーバーおよび Discourse アプリケーションの監視に興味のある他のシステム管理者の方々が、この短いトピックを役立つと感じてくれることを願っています。




