Use Node-Red e Telegram para Monitorar o Status do Discourse

Por favor, note que esta é uma aplicação diferente do envio de notificações do Discourse usando o plugin Discourse Telegram Notifications. Esta aplicação NR é para monitorar o servidor, o Docker e a aplicação Discourse, em geral.

Como a maioria de vocês, administradores de sistemas ocupados, quando estamos em movimento, achamos útil monitorar aplicações de produção a partir dos nossos telemóveis.

Usamos o Telegram e o Node-Red (NR) para esta tarefa. Por exemplo, algumas das nossas tarefas atuais do Discourse NR:

  1. O Node-Red faz uma solicitação HTTPS GET (a cada minuto) em uma categoria (criada para este propósito) e envia um alerta para o nosso bot do Telegram quando detecta que o Discourse está FORA DO AR (e volta a funcionar, sem oscilações).

  2. Nosso bot básico do Telegram, UNIXForumBot, possui várias verificações que podemos realizar, incluindo:

  • Verificar manualmente se o Discourse está em execução.
  • Mostrar rapidamente qual contêiner do Discourse está sendo usado pelo nosso proxy reverso.
  • Verificar o tempo de atividade do servidor.
  • Verificar a utilização do disco.
  • Fazer ping em outras aplicações LAMP no mesmo servidor.

Exemplos de capturas de tela do Telegram:

Nossa Configuração e Informações de Contexto

Informações de Contexto

A razão pela qual verificamos qual contêiner do Discourse está em execução é porque, se houver um problema, ou se eu simplesmente quiser fazer uma atualização ou alterações, queremos sempre saber rapidamente qual contêiner está executando o Discourse antes de fazer login no servidor.

Sempre executamos o Discourse atrás de um proxy reverso. Como temos muitas outras aplicações web rodando no mesmo servidor (aplicações LAMP rodando com aplicações Docker do Discourse), executamos o Discourse da seguinte forma:

  • Contêineres de dados e aplicações do Discourse separados.
  • Os contêineres de aplicação do Discourse expõem apenas um soquete de domínio Unix ao host (o proxy reverso).

Isso significa, para aqueles não familiarizados com esta configuração, que podemos construir o Discourse quando uma nova atualização sai e fazer a transição para essa nova versão do Discourse com tempo de inatividade zero, especificando um soquete Unix diferente na configuração do proxy reverso.

Se houver um problema com a última versão beta, sem problemas, podemos rapidamente e facilmente reverter para o outro contêiner que estava executando uma versão anterior do Discourse. Funciona perfeitamente.

Diagrama do Node-Red para o Bot do Telegram que Usamos para Monitorar o Discourse

Para qualquer pessoa interessada em monitorar suas aplicações do Discourse usando o Telegram e o NR, tornei os nós do Node-Red para esta aplicação disponíveis. Você pode personalizar conforme desejar:

No futuro, planejamos expandir as funções de monitoramento do Docker e do Discourse no aplicativo do Telegram.

Veja também:

Esperamos que outros administradores de sistemas interessados em monitorar seu servidor de produção e a aplicação do Discourse encontrem este tópico curto útil.

4 curtidas