Verwenden Sie Node-Red und Telegram, um den Discourse-Status zu überwachen

Bitte beachten Sie, dass dies eine andere Anwendung ist als das Senden von Discourse-Anwendungsnachrichten über das Discourse Telegram Notifications-Plugin. Diese NR-Anwendung dient der Überwachung des Servers, von Docker und der Discourse-Anwendung im Allgemeinen.

Wie die meisten von Ihnen, geschäftigen Systemadministratoren, finden wir es hilfreich, Produktionsanwendungen von unseren Mobiltelefonen aus zu überwachen, wenn wir unterwegs sind.

Wir verwenden dafür Telegram und Node-Red (NR). Einige unserer aktuellen Discourse-NR-Aufgaben sind beispielsweise:

  1. Node-Red führt jede Minute eine HTTPS-GET-Anfrage an eine Kategorie (die zu diesem Zweck erstellt wurde) durch und sendet eine Warnung an unseren Telegram-Bot, wenn es feststellt, dass Discourse DOWN ist (und wieder UP geht, ohne zu flattern).

  2. Unser grundlegender Telegram-Bot, UNIXForumBot, bietet eine Reihe von Überprüfungen, die wir durchführen können, darunter:

  • Manuelle Überprüfung, ob Discourse ausgeführt wird.
  • Schnelle Anzeige, welcher Discourse-Container von unserem Reverse-Proxy verwendet wird.
  • Überprüfung der Server-Laufzeit.
  • Überprüfung der Festplattennutzung.
  • Ping auf andere LAMP-Anwendungen auf demselben Server.

Beispiel-Telegram-Screenshots:

Unsere Einrichtung und Hintergrundinformationen

Hintergrundinformationen

Der Grund, warum wir prüfen, welcher Discourse-Container ausgeführt wird, liegt darin, dass wir bei einem Problem oder wenn wir einfach nur ein Upgrade durchführen oder Änderungen vornehmen möchten, immer schnell wissen wollen, welcher Container Discourse ausführt, bevor wir uns auf dem Server anmelden.

Wir führen Discourse immer hinter einem Reverse-Proxy aus. Da wir viele andere Web-Apps auf demselben Server ausführen (LAMP-Apps, die mit Discourse-Docker-Apps ausgeführt werden), führen wir Discourse wie folgt aus:

  • Separate Discourse-Daten- und Anwendungscontainer.
  • Discourse-Anwendungscontainer exponieren nur einen Unix-Domain-Socket gegenüber dem Host (dem Reverse-Proxy).

Das bedeutet für diejenigen, die mit dieser Einrichtung nicht vertraut sind, dass wir Discourse bauen können, wenn ein neues Upgrade verfügbar ist, und durch Angabe eines anderen Unix-Domain-Sockets in der Reverse-Proxy-Konfiguration ohne Ausfallzeit auf diese neue Version von Discourse umschalten können.

Wenn es ein Problem mit dem neuesten Beta-Release gab, kein Problem: Wir können schnell und einfach zum anderen Container zurückkehren, der eine frühere Discourse-Version ausführte. Funktioniert einwandfrei.

Node-Red-Diagramm für den Telegram-Bot, den wir zur Überwachung von Discourse verwenden

Für alle, die ihre Discourse-Anwendungen mit Telegram und NR überwachen möchten, habe ich die Node-Red-Knoten für diese Anwendung verfügbar gemacht. Sie können sie nach Belieben anpassen:

In der Zukunft planen wir, die Docker- und Discourse-Überwachungsfunktionen in der Telegram-App zu erweitern.

Siehe auch:

Ich hoffe, dass andere Systemadministratoren, die an der Überwachung ihrer Produktionsserver und Discourse-Anwendungen interessiert sind, dieses kurze Thema nützlich finden.

4 „Gefällt mir“