Discourse-health-check: visión general de un solo comando de tu servidor Discourse

Un pequeño script en bash que creé para mi propio foro y que ofrece una visión general rápida del estado del servidor de Discourse. Lo comparto por si a alguien le resulta útil este tipo de resumen rápido.

Verifica los recursos del sistema: Docker, servicios de Discourse (Postgres, Redis, Nginx, Unicorn, Sidekiq), antigüedad de las copias de seguridad, TLS y aspectos básicos de seguridad. Finaliza con un resumen de aprobado / advertencia / crítico y un código de salida adecuado para cron.

Instalación

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

Fuente, opciones y un ejemplo de cron en el README:


Nueva versión v1.0.4:

Dos correcciones:

  1. Discourse reemplazó Unicorn por Pitchfork (predeterminado en 2026.2, Unicorn eliminado por completo
    en 2026.4), por lo que la comprobación del servidor web ahora detecta ambos. Gracias a @RGJ por señalar esto
    en junio.

  2. Las comprobaciones de servicios coincidían con su propia línea de comandos. pgrep -f <nombre> hacía que pgrep coincidiera consigo mismo y la comprobación se aprobara independientemente de si el servicio estaba realmente en ejecución. Sidekiq había estado informando “en ejecución” incondicionalmente desde la versión 1.0.0. Podría haber estado detenido y aún así recibirías una marca verde y un código de salida 0 de cron. La misma causa raíz que el falso positivo de Puma en la versión 1.0.1, que resultó haber sido renombrado en lugar de corregido.

9 Me gusta

Discourse no ejecuta Puma.

3 Me gusta

Unicornio. Arreglado, gracias.

1 me gusta

¡Pitchfork en estos días!

2 Me gusta

¡Buena oferta, gracias!

Para las copias de seguridad, te sugiero verificar la última copia para ver si se ha leído desde que se escribió. Eso sirve como indicador de si se ha copiado fuera del sitio. (O, si no verificas solo la última, quizás verifiques todas.)

Si ninguna copia de seguridad se ha copiado fuera del sitio en una semana, eso merece una advertencia.

(Creo que puedes restar stat -c %Y de stat -c %X o quizás simplemente compararlos. Serán diferentes si el archivo de copia de seguridad se ha leído desde que se escribió.)

5 Me gusta

@Ed_S Excelente sugerencia. Añadido en la v1.0.2. Compara atime vs mtime en la copia de seguridad más reciente y avisa si no se ha leído desde que se escribió, con una verificación de noatime para omitir de forma limpia donde atime no es fiable. Te hemos acreditado, ¡gracias!

4 Me gusta