Node-Red와 Telegram으로 Discourse 상태 모니터링하기

이것은 Discourse Telegram Notifications 플러그인을 사용하여 Discourse 애플리케이션 알림을 보내는 것과 다른 애플리케이션임을 유의하세요. 이 NR(Node-Red) 애플리케이션은 서버, Docker 및 Discourse 애플리케이션을 전반적으로 모니터링하는 데 사용됩니다.

바쁜 시스템 관리자 여러분과 마찬가지로, 이동 중일 때 모바일 폰으로 프로덕션 애플리케이션을 모니터링하는 것이 유용합니다.

우리는 이 작업을 위해 Telegram과 Node-Red(NR)를 사용합니다. 예를 들어, 현재 우리가 사용하는 Discourse NR 작업 중 일부는 다음과 같습니다:

  1. Node-Red가 1분마다 특정 카테고리(이 목적을 위해 생성됨)에 HTTPS GET 요청을 보내고, Discourse가 다운되었을 때(그리고 플래핑 없이 다시 업되었을 때) Telegram 봇에 경고를 보냅니다.

  2. 우리의 기본 Telegram 봇인 UNIXForumBot에는 다음을 포함한 여러 가지 체크 기능이 있습니다:

  • Discourse가 실행 중인지 수동으로 확인.
  • 리버스 프록시에서 어떤 Discourse 컨테이너가 사용되고 있는지 빠르게 확인.
  • 서버 가동 시간(Uptime) 확인.
  • 디스크 사용률 확인.
  • 같은 서버의 다른 LAMP 애플리케이션에 핑(Ping) 전송.

Telegram 스크린샷 예시:

우리의 설정 및 배경 정보

배경 정보

Discourse 컨테이너 중 어떤 것이 실행 중인지 확인하는 이유는 문제가 있거나, 단순히 업그레이드나 변경 사항을 원할 때, 서버에 로그인하기 전에 어떤 컨테이너가 Discourse를 실행 중인지 빠르게 알아야 하기 때문입니다.

우리는 항상 리버스 프록시 뒤에 Discourse를 실행합니다. 같은 서버에 Discourse Docker 앱과 함께 실행되는 많은 다른 웹 앱(LAMP 앱)이 있기 때문에, 우리는 다음과 같이 Discourse를 실행합니다:

  • Discourse 데이터 컨테이너와 애플리케이션 컨테이너를 분리.
  • Discourse 애플리케이션 컨테이너는 호스트(리버스 프록시)에게만 unix 도메인 소켓을 노출.

이것은 이 설정에 익숙하지 않은 사람들에게는, 새로운 업그레이드가 나올 때 Discourse를 빌드하고 리버스 프록시 설정에서 다른 unix 소켓을 지정하여 Discourse의 새 버전으로 전환할 때 제로 다운타임(Zero Downtime)을 달성할 수 있음을 의미합니다.

최신 베타 버전에 문제가 있어도 걱정할 필요가 없습니다. 이전 Discourse 버전을 실행하고 있던 다른 컨테이너로 빠르게 쉽게 되돌릴 수 있습니다. 완벽하게 작동합니다.

Discourse 모니터링에 사용하는 Telegram 봇을 위한 Node-Red 다이어그램

Telegram과 NR를 사용하여 Discourse 애플리케이션을 모니터링하는 데 관심이 있는 사람들을 위해, 이 애플리케이션을 위한 Node-Red 노드를 공개했습니다. 원하는 대로 커스터마이징할 수 있습니다:

향후 우리는 Telegram 앱에서 Docker 및 Discourse 모니터링 기능을 확장할 계획입니다.

또한 참고할 내용:

프로덕션 서버 및 Discourse 애플리케이션 모니터링에 관심이 있는 다른 시스템 관리자분들이 이 짧은 주제가 유용하길 바랍니다.

4개의 좋아요