เชื่อมต่อ Upptime - แจ้งเตือนการมอนิเตอร์ Uptime

เชื่อม Upptime เข้ากับ Echobell เพื่อรับการแจ้งเตือนแบบพุชหรือสายโทรเข้าทันทีที่เว็บไซต์ของคุณล่ม คู่มือตั้งค่าที่ขับเคลื่อนด้วย GitHub Actions


คุณสามารถส่งต่ออีเวนต์เว็บล่มและกลับมาใช้งานได้ของ Upptime เข้าสู่ Echobell ได้โดยตรง เพื่อให้ทีมของคุณได้รับการแจ้งเตือนแบบพุชที่สำคัญตามเวลาหรือสายโทรเข้า โดยไม่ต้องสร้างไปป์ไลน์แยกต่างหาก คู่มือนี้เน้นการตั้งค่าฝั่ง Echobell และใช้ตัวแปรการแจ้งเตือนที่ Upptime มีให้อยู่แล้ว สำหรับตัวเลือกเฉพาะของ Upptime ดูได้ที่ เอกสารการแจ้งเตือนอย่างเป็นทางการ

ทำไมจึงควรใช้ Echobell สำหรับการแจ้งเตือนของ Upptime

  • ยกระดับเป็นสายโทรเข้าสำหรับเหตุล่มขั้นวิกฤต ขณะที่การตรวจสอบทั่วไปยังคงเป็นการแจ้งเตือนแบบมาตรฐานหรือแบบสำคัญตามเวลา
  • ใช้เทมเพลตและตัวแปรได้ ทำให้ทุกการแจ้งเตือนแสดงเว็บไซต์ที่ได้รับผลกระทบ สถานะ โค้ดตอบกลับ และลิงก์ไปยัง issue บน GitHub
  • ไม่ต้องมีโครงสร้างพื้นฐานเพิ่ม แค่ใช้ webhook URL ที่ปลอดภัยของแต่ละช่อง Echobell

สิ่งที่ต้องเตรียม

  • Upptime repository ที่มีอยู่แล้วและเปิดใช้ GitHub Actions
  • สิทธิ์ในการเพิ่ม secret ของ GitHub repository
  • ช่อง Echobell ที่มี webhook URL (ในแอป ให้เปิดช่องนั้น → คัดลอก webhook URL ของช่อง)

เตรียมช่อง Echobell

  1. สร้างหรือเปิดช่องใน Echobell แล้วเลือกรูปแบบการแจ้งเตือนที่คุณต้องการ (มาตรฐาน สำคัญตามเวลา หรือโทรเข้า)
  2. คัดลอก webhook URL ของช่อง ซึ่งจะมีหน้าตาแบบนี้ https://hook.echobell.one/t/<channel-token>
  3. (ไม่บังคับ) ตั้งเทมเพลตที่ใช้ตัวแปรอย่าง {{site}}, {{status}}, {{code}}, {{url}} และ {{issue}} เพื่อให้การแจ้งเตือนของคุณมีโครงสร้างชัดเจน

เพิ่ม secret ของ Upptime สำหรับ Echobell

ใน Upptime repository ของคุณ ให้ไปที่ 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

หมายเหตุ:

  • พารามิเตอร์ใน query จะพาข้อมูลที่มีโครงสร้างเข้าสู่ Echobell โดย Upptime จะเติมค่าตัวแปรให้ และ Echobell จะเก็บค่าเหล่านั้นไว้เป็นตัวแปรของเทมเพลต (site, status, url, issue, code, emoji)
  • เข้ารหัส URL ให้ถูกต้องเสมอ (แทนช่องว่างด้วย %20 หากคุณปรับแต่งข้อความ) เพื่อไม่ให้คำขอเสียหาย
  • ผู้ให้บริการแจ้งเตือนหรือกลยุทธ์อื่น ๆ ยังคงจัดการอยู่ใน Upptime ตามเดิม เพิ่มเฉพาะสิ่งที่คุณต้องการสำหรับ Echobell แล้วปล่อยส่วนที่เหลือไว้ในหน้า GitHub secrets

จับคู่ตัวแปรใน Echobell

ใช้เทมเพลตแบบกระชับเพื่อให้การแจ้งเตือนอ่านง่าย:

หัวข้อ: {{emoji}} Upptime: {{site}} มีสถานะ {{status}}
เนื้อหา: ตอบกลับ {{code}} · {{url}}
ลิงก์ภายนอก: {{issue}}

คุณสามารถเปลี่ยนรูปแบบการแจ้งเตือนของช่องเป็น "สำคัญตามเวลา" หรือ "โทรเข้า" สำหรับเว็บไซต์ที่มีความสำคัญสูง ในขณะที่ปล่อยเว็บไซต์อื่น ๆ ให้ใช้การแจ้งเตือนแบบพุชมาตรฐาน

ทดสอบการเชื่อมต่อ

  • ลองชี้ URL ที่มอนิเตอร์อยู่ไปยังปลายทางที่ไม่มีอยู่จริงชั่วคราว หรือหยุดบริการเพื่อจำลองความล้มเหลว
  • ยืนยันว่าการแจ้งเตือนมาถึง Echobell พร้อมข้อมูลในฟิลด์ของเทมเพลตครบถ้วน
  • คืนค่าบริการให้กลับมาทำงาน แล้วตรวจสอบข้อความแจ้งว่ากลับมาใช้งานได้แล้ว

การแก้ปัญหา

  • ตรวจสอบว่า NOTIFICATION_CUSTOM_WEBHOOK และ NOTIFICATION_CUSTOM_WEBHOOK_URL สะกดตรงกับในรายการ secret ทุกตัวอักษร
  • หากคุณเปลี่ยนโทเคนของช่อง Echobell อย่าลืมอัปเดต secret ด้วย
  • สำหรับความล้มเหลวฝั่ง Upptime หรือผู้ให้บริการเพิ่มเติม ให้ดูที่ เอกสารอย่างเป็นทางการ และล็อกของ GitHub Actions