Discourse-health-check : vue d'ensemble en une seule commande de votre serveur Discourse

Un petit script Bash que j’ai créé pour mon propre forum, qui fournit un aperçu rapide de l’état de santé du serveur Discourse. Je le partage avec quiconque pourrait trouver ce type de vue d’ensemble utile.

Vérifie les ressources système : Docker, les services Discourse (Postgres, Redis, Nginx, Unicorn, Sidekiq), la fraîcheur des sauvegardes, TLS et les bases de la sécurité. Se termine par un résumé pass / warning / critical et un code de sortie adapté à cron.

Installation

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

Source, options et un exemple de configuration cron dans le fichier README :


Nouvelle version v1.0.4 :

Deux corrections :

  1. Discourse a remplacé Unicorn par Pitchfork (par défaut dans la version 2026.2, Unicorn entièrement supprimé dans la version 2026.4), donc la vérification du serveur web détecte désormais les deux. Merci à @RGJ d’avoir signalé ce point en juin.

  2. Les sondes de service correspondaient à leur propre ligne de commande. pgrep -f <nom> faisait que pgrep se correspondait lui-même, et la vérification réussissait que le service soit réellement actif ou non. Sidekiq affichait « en cours d’exécution » de manière inconditionnelle depuis la version 1.0.0. Il pouvait être arrêté et vous obteniez tout de même un indicateur vert et un code de sortie 0 de cron. Même cause racine que le faux positif Puma dans la version 1.0.1, qui s’est avéré avoir été renommé plutôt que corrigé.

9 « J'aime »

Discourse n’utilise pas Puma.

3 « J'aime »

Unicorn. C’est corrigé, merci.

1 « J'aime »

Pitchfork de nos jours !!

2 « J'aime »

Belle proposition, merci !

Pour les sauvegardes, je vous suggère de vérifier la dernière sauvegarde pour voir si elle a été lue depuis sa création. C’est un indicateur pour vérifier si elle a été copiée hors site. (Ou, si vous ne vérifiez pas la dernière, peut-être vérifier toutes.)

Aucune sauvegarde n’a été copiée hors site depuis une semaine ? Cela vaut la peine de lancer une alerte.

(Je pense que vous pouvez soustraire stat -c %Y de stat -c %X, ou peut-être simplement les comparer. Ils seront différents si le fichier de sauvegarde a été lu depuis sa création.)

5 « J'aime »

@Ed_S Excellente suggestion. Ajouté dans la version 1.0.2. Compare atime et mtime sur la dernière sauvegarde et émet une alerte si elle n’a pas été lue depuis son écriture, avec une vérification noatime pour ignorer proprement les cas où atime est peu fiable. Vous avez été crédité, merci !

4 « J'aime »