Upptime 연동 - 가동 시간 모니터링 알림

Upptime을 Echobell과 연동해 웹사이트가 다운되는 즉시 푸시 알림이나 전화 알림을 받으세요. GitHub Actions 기반 설정 가이드입니다.


Upptime의 장애 및 복구 이벤트를 Echobell로 바로 전달하면, 별도의 파이프라인을 구축하지 않고도 팀이 긴급 푸시 알림이나 전화 알림을 받을 수 있습니다. 이 가이드는 설정 과정 중 Echobell 쪽에 초점을 맞추며 Upptime의 기본 알림 변수를 사용합니다. Upptime 고유의 옵션은 공식 알림 문서를 참고하세요.

Upptime 알림에 Echobell을 사용하는 이유

  • 중요한 장애는 전화 알림으로 단계를 올리고, 일상적인 점검은 일반 또는 긴급 푸시 알림으로 유지할 수 있습니다
  • 템플릿과 변수를 사용해 모든 알림에 영향을 받은 사이트, 상태, 응답 코드, GitHub 이슈 링크를 표시할 수 있습니다
  • 추가 인프라가 필요 없습니다. Echobell 채널마다 발급되는 안전한 웹훅 URL 하나면 충분합니다

사전 준비 사항

  • GitHub Actions가 활성화된 기존 Upptime 저장소
  • GitHub 저장소 시크릿을 추가할 수 있는 권한
  • 웹훅 URL이 있는 Echobell 채널(앱에서 채널을 열고 웹훅 URL을 복사합니다)

Echobell 채널 준비하기

  1. Echobell에서 채널을 만들거나 열고 원하는 알림 방식(일반, 긴급, 전화)을 선택합니다.
  2. 채널 웹훅 URL을 복사합니다. https://hook.echobell.one/t/<channel-token> 형태입니다.
  3. (선택 사항) {{site}}, {{status}}, {{code}}, {{url}}, {{issue}} 같은 변수를 사용하는 템플릿을 설정하면 알림을 구조적으로 유지할 수 있습니다.

Echobell용 Upptime 시크릿 추가하기

Upptime 저장소에서 Settings → Secrets and variables → Actions로 이동한 뒤 다음 항목을 추가합니다.

  • NOTIFICATION_CUSTOM_WEBHOOK=true
  • NOTIFICATION_CUSTOM_WEBHOOK_URL=https://hook.echobell.one/t/<channel-token>?site=$SITE_NAME&status=$STATUS&url=$SITE_URL&issue=$ISSUE_URL&code=$RESPONSE_CODE&emoji=$EMOJI
  • (선택 사항) NOTIFICATIONS_DOWN_MESSAGE=$EMOJI $SITE_NAME is $STATUS ($RESPONSE_CODE) – $ISSUE_URL
  • (선택 사항) NOTIFICATIONS_UP_MESSAGE=$EMOJI $SITE_NAME is back up – $SITE_URL

참고 사항:

  • 쿼리 파라미터가 구조화된 데이터를 Echobell로 전달합니다. Upptime이 변수를 채워 넣으면 Echobell은 이를 템플릿 변수(site, status, url, issue, code, emoji)로 저장합니다.
  • 문구를 직접 수정할 때는 요청이 깨지지 않도록 URL을 인코딩된 상태로 유지하세요(공백은 %20으로 바꿉니다).
  • 다른 알림 제공자나 전략은 계속 Upptime에서 관리합니다. 여기서는 Echobell에 필요한 항목만 추가하고 나머지는 GitHub 시크릿 UI에 그대로 두세요.

Echobell에서 변수 매핑하기

알림을 읽기 쉽게 유지하려면 간결한 템플릿을 사용하세요.

Title: {{emoji}} Upptime: {{site}} is {{status}}
Body: Response {{code}} · {{url}}
External link: {{issue}}

우선순위가 높은 사이트에는 채널의 알림 방식을 "긴급" 또는 "전화"로 전환하고, 나머지 사이트는 일반 푸시 알림으로 유지할 수 있습니다.

연동 테스트하기

  • 모니터링 중인 URL을 일시적으로 존재하지 않는 엔드포인트로 변경하거나 서비스를 중지해 장애를 발생시킵니다.
  • 템플릿 필드가 모두 채워진 알림이 Echobell에 도착하는지 확인합니다.
  • 서비스를 복구한 뒤 복구 메시지가 오는지 확인합니다.

문제 해결

  • NOTIFICATION_CUSTOM_WEBHOOKNOTIFICATION_CUSTOM_WEBHOOK_URL이 시크릿 목록과 정확히 같은 이름으로 입력되었는지 확인하세요.
  • Echobell 채널 토큰을 변경했다면 시크릿도 함께 업데이트하세요.
  • Upptime 쪽 오류나 추가 제공자와 관련된 문제는 공식 문서와 GitHub Actions 로그를 확인하세요.