Tích hợp Upptime - Cảnh báo giám sát uptime

Tích hợp Upptime với Echobell để nhận thông báo đẩy hoặc cuộc gọi ngay khi website của bạn sập. Hướng dẫn thiết lập chạy bằng GitHub Actions.


Bạn có thể chuyển thẳng các sự kiện gián đoạn và khôi phục của Upptime vào Echobell, để cả nhóm nhận được thông báo đẩy khẩn cấp hoặc cuộc gọi mà không phải dựng thêm một đường ống riêng. Hướng dẫn này tập trung vào phần thiết lập bên Echobell và dùng các biến thông báo có sẵn của Upptime. Với những tùy chọn riêng của Upptime, hãy xem tài liệu thông báo chính thức.

Vì sao nên dùng Echobell cho cảnh báo Upptime

  • Leo thang bằng cuộc gọi cho sự cố nghiêm trọng, trong khi các kiểm tra thường lệ vẫn ở dạng thông báo thông thường hoặc khẩn cấp
  • Mẫu và biến giúp mỗi cảnh báo hiển thị rõ site bị ảnh hưởng, trạng thái, mã phản hồi và liên kết tới GitHub issue
  • Không cần hạ tầng bổ sung — chỉ cần một webhook URL an toàn cho mỗi kênh Echobell

Điều kiện cần có

  • Một kho Upptime sẵn có đã bật GitHub Actions
  • Quyền thêm secret cho kho GitHub
  • Một kênh Echobell có webhook URL (trong ứng dụng, mở kênh → sao chép webhook URL của kênh)

Chuẩn bị một kênh Echobell

  1. Tạo hoặc mở một kênh trong Echobell và chọn kiểu thông báo bạn muốn (thông thường, khẩn cấp hoặc cuộc gọi).
  2. Sao chép webhook URL của kênh; nó có dạng https://hook.echobell.one/t/<channel-token>.
  3. (Tùy chọn) Đặt một mẫu dùng các biến như {{site}}, {{status}}, {{code}}, {{url}}{{issue}} để cảnh báo luôn có cấu trúc rõ ràng.

Thêm secret Upptime cho Echobell

Trong kho Upptime của bạn, vào Settings → Secrets and variables → Actions rồi thêm:

  • 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
  • (Tùy chọn) NOTIFICATIONS_DOWN_MESSAGE=$EMOJI $SITE_NAME is $STATUS ($RESPONSE_CODE) – $ISSUE_URL
  • (Tùy chọn) NOTIFICATIONS_UP_MESSAGE=$EMOJI $SITE_NAME is back up – $SITE_URL

Lưu ý:

  • Các tham số truy vấn mang dữ liệu có cấu trúc vào Echobell. Upptime nối thêm các biến, còn Echobell lưu chúng dưới dạng biến mẫu (site, status, url, issue, code, emoji).
  • Hãy giữ URL được mã hóa đúng chuẩn (thay dấu cách bằng %20 nếu bạn tùy chỉnh văn bản) để request không bị lỗi.
  • Các nhà cung cấp thông báo hoặc chiến lược khác vẫn được quản lý trong Upptime — chỉ thêm những gì bạn cần cho Echobell và giữ phần còn lại trong giao diện GitHub secrets.

Ánh xạ biến trong Echobell

Dùng một mẫu ngắn gọn để cảnh báo luôn dễ đọc:

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

Bạn có thể chuyển kiểu thông báo của kênh sang "Time-Sensitive" (Khẩn cấp) hoặc "Call" (Cuộc gọi) cho những site ưu tiên cao, trong khi các site khác vẫn dùng thông báo đẩy thông thường.

Kiểm thử tích hợp

  • Tạm thời trỏ một URL đang được giám sát tới một endpoint không tồn tại, hoặc tạm dừng một dịch vụ để gây ra lỗi.
  • Xác nhận cảnh báo đến Echobell với đầy đủ các trường trong mẫu của bạn.
  • Khôi phục dịch vụ và kiểm tra thông báo phục hồi.

Khắc phục sự cố

  • Hãy chắc chắn rằng NOTIFICATION_CUSTOM_WEBHOOKNOTIFICATION_CUSTOM_WEBHOOK_URL được viết chính xác như trong danh sách secret.
  • Nếu bạn đổi token của kênh Echobell, hãy cập nhật lại secret.
  • Với các lỗi phía Upptime hoặc các nhà cung cấp bổ sung, hãy xem tài liệu chính thức và log GitHub Actions của bạn.