ควรตรวจเกตเวย์ MQTT ต่อไม่สำเร็จที่ขั้นแรกซึ่งเสีย ได้แก่ ค้นปลายทาง ต่อเครือข่าย TLS เมื่อจำเป็น โบรกเกอร์ยอมรับ หรือสิทธิ์ข้อความ เปลี่ยนหัวข้อแก้การจับมือ TLS ล้มเหลวไม่ได้ เก็บข้อผิดพลาดไคลเอนต์และบันทึกโบรกเกอร์ที่ตรงกันเพื่อให้ทดสอบขั้นที่ถูก
ยืนยันว่าเกตเวย์ที่ติดตั้งกำลังรันอะไร
ตามข้อมูลผลิตภัณฑ์ เกตเวย์ METRAVON TG451 ระบุ MQTT เป็นหนึ่งในฟังก์ชันซอฟต์แวร์ แต่ยังต้องยืนยันโหมดเฟิร์มแวร์และแบบข้อความแพลตฟอร์ม บันทึกรุ่นเฟิร์มแวร์ รุ่น MQTT วิธีขนส่ง ชื่อโฮสต์โบรกเกอร์ พอร์ตบริการ และตัวตนที่กำหนดให้การติดตั้งนี้

ตรวจข้อกำหนดบริการจริงว่าใช้ TCP แบบไม่เข้ารหัส TLS หรือวิธีขนส่งอื่นที่รองรับ อย่าเดาพอร์ตจากค่าเริ่มต้นที่จำ ยืนยันว่าปลายทางตั้งเป็นจุดรับโบรกเกอร์ ไม่ใช่ที่อยู่เว็บคอนโซลหรือเส้นทางตัวกระจายโหลดสำหรับบริการอื่น
ระบุเกตเวย์ MQTT ล้มเหลวจากบันทึก
| ผล | ขั้นที่น่าจะเป็น | หลักฐานที่ใช้ได้ |
|---|---|---|
| ชื่อใช้ไม่ได้ | ค้นปลายทางแล้วยังไม่ได้ที่อยู่ใช้งาน | บันทึกชื่อโฮสต์ ผลตัวแปลงชื่อ และเส้นทางที่ใช้งานโดยไม่เปลี่ยนข้อมูลรับรอง |
| พอร์ตใช้ไม่ได้ | ยังต่อบริการที่ขอไม่สำเร็จ | เทียบการลองต่อกับบันทึกเซิร์ฟเวอร์ที่รอรับและไฟร์วอลล์ |
| TLS ล้มเหลว | ยังไม่ตั้งเซสชันปลอดภัย | เก็บข้อผิดพลาดจับมือและตรวจเวลา ชื่อโฮสต์ และข้อมูลใบรับรองที่ต้องใช้ |
| โบรกเกอร์ปฏิเสธ | เซิร์ฟเวอร์ส่งผลการเชื่อมต่อ MQTT กลับ | ตีความผลตามรุ่นโปรโตคอลที่ตกลงและบันทึกโบรกเกอร์ |
| ไม่มีข้อมูลใช้ได้ | ยอมรับการต่อแล้วแต่ยังไม่ได้ผลแอปที่คาด | ตรวจสิทธิ์หัวข้อ การจัดการเพย์โหลด และบันทึกรายการที่แพลตฟอร์มยอมรับ |
แก้ความเชื่อถือและตัวตนโดยไม่ข้ามการตรวจ
สำหรับ TLS ยืนยันนาฬิกาเกตเวย์ อายุใบรับรอง และชื่อโฮสต์ ผู้ออกใบรับรองส่วนตัวต้องมีค่าความเชื่อถือเหมาะสม หากกำหนด TLS สองทาง ให้ยืนยันว่าใบรับรองไคลเอนต์กับกุญแจส่วนตัวตรงกันและเป็นของอุปกรณ์ที่ตั้งใจ
อย่าอัปโหลดกุญแจส่วนตัวในคำขอสนับสนุนหรือปิดตรวจใบรับรองเพื่อให้ข้อผิดพลาดหาย ขอห่วงโซ่ความเชื่อถือที่คาดและค่าต่อที่รองรับจากเจ้าของบริการ แล้วใช้ผ่านขั้นตอนตั้งค่าที่อนุญาต
ตัวตนไคลเอนต์ MQTT กับสิทธิ์เผยแพร่เป็นคนละเรื่อง โบรกเกอร์รับการต่อแต่ปฏิเสธงานที่ไม่อนุญาตได้ ตรวจหัวข้อที่แน่นอน ตัวพิมพ์เล็กใหญ่ และนโยบายบัญชี ใน MQTT 3.1.1 เมื่อโบรกเกอร์รับการต่อใหม่ด้วยรหัสไคลเอนต์ที่เชื่อมอยู่แล้ว จะตัดไคลเอนต์เดิม เกตเวย์สองตัวใช้รหัสนั้นจึงอาจผลัดกันตัดอีกตัวซ้ำเมื่อเชื่อมใหม่ เทียบรหัสไคลเอนต์และเวลาโบรกเกอร์เชื่อมต่อก่อนเปลี่ยนเสาหรือค่าการคงการเชื่อมต่อ
แยกเผยแพร่สำเร็จออกจากค่าที่วัดถูกต้อง
โบรกเกอร์ขนส่งเพย์โหลด ไม่ได้ตรวจความหมายทางวิศวกรรมของค่าเซ็นเซอร์โดยตัวมันเอง เทียบข้อความที่เก็บกับสคีมาที่ตกลงและค่าต้นทางที่ตรวจแล้ว ยืนยันหน่วย สเกล ตัวตนต้นทาง และเวลาเก็บข้อมูลก่อนวินิจฉัยว่าไม่มีแนวโน้มเพราะปัญหาการเชื่อมต่อ
PUBACK ของ QoS 1 ยืนยันว่าฝั่งรับ MQTT รับผิดชอบข้อความแล้ว ไม่ใช่ว่าฐานข้อมูลปลายทางเก็บค่าที่วัดแล้ว QoS 1 ส่งซ้ำได้ ส่วน QoS 2 ป้องกันส่งซ้ำภายในการแลกเปลี่ยนของโปรโตคอล แต่ไม่รับรองการประมวลผลฐานข้อมูลถัดไป ตรวจว่าเฟิร์มแวร์ที่ติดตั้งและบริการฝั่งรับรองรับ QoS ระดับใด แล้วกำหนดวิธีที่แอประบุและกระทบยอดบันทึกซ้ำ ข้อความที่ตั้งให้คงไว้ไม่ใช่คลังอนุกรมเวลา และการมีเซสชันไม่พิสูจน์ว่าค่าที่วัดก่อนหน้ายังอยู่ครบ
สำหรับเซสชันไม่เสถียร เทียบค่าการคงการเชื่อมต่อ เครือข่ายขาด และเหตุปิดฝั่งเซิร์ฟเวอร์ กำหนดการลองซ้ำและคงการเชื่อมต่อจากข้อกำหนดบริการและสภาพที่พบ วงจรลองซ้ำถี่เกินอาจซ่อนปัญหาเดิมและเพิ่มภาระปลายทาง
ใช้ไคลเอนต์ทดสอบแยกเฉพาะเมื่อตอบคำถามเฉพาะได้
ไคลเอนต์ทดสอบที่อนุมัติบนเครือข่ายเดียวกันช่วยแยกการเข้าถึงบริการจากปัญหาค่าตั้งเกตเวย์ ให้ตัวตนแยกและหัวข้อทดสอบที่อนุญาต อย่าใช้ตัวตนอุปกรณ์จริงซ้ำหรือเผยแพร่ค่าทดสอบลงค่าที่วัดในการผลิต
เก็บว่าทดสอบจุดปลาย วิธีขนส่ง และประเภทข้อมูลรับรองใด แล็ปท็อปต่อสำเร็จผ่านอีกเครือข่ายเป็นหลักฐานมีประโยชน์ แต่ไม่ตรวจเส้นทาง นาฬิกา หรือคลังความเชื่อถือของเกตเวย์
คำถามบูรณาการ MQTT
Q1. ควรเปลี่ยนหัวข้อเมื่อโบรกเกอร์ไม่ยอมรับเซสชันเลยหรือไม่?
แก้ขั้นเชื่อมต่อที่เสียก่อน การแมปหัวข้อโทรมาตรปกติเกี่ยวข้องหลังยอมรับ แม้คุณสมบัติที่ผูกกับการต่ออาจมีนโยบายของตัวเอง ใช้ผลปฏิเสธจริงจากโบรกเกอร์แทนเปลี่ยนฟิลด์ไม่เกี่ยว
Q2. ยืนยันตัวตนสำเร็จพิสูจน์สิทธิ์เผยแพร่หรือไม่?
ไม่ ยืนยันงานที่อนุญาตและเส้นทางหัวข้อที่แน่นอนของบัญชี แล้วตรวจเพย์โหลดที่แอปปลายทางยอมรับ สิทธิ์ขนส่งกับการตรวจแอปแยกกัน
Q3. คำขอช่วย MQTT ควรมีอะไร?
ส่งรุ่นอุปกรณ์และเฟิร์มแวร์ รุ่นโปรโตคอล วิธีขนส่ง จุดปลาย เวลาเสีย และผลไคลเอนต์/โบรกเกอร์ที่ลบข้อมูลลับแล้ว รวมตัวอย่างหัวข้อและเพย์โหลดที่ปิดข้อมูลลับเมื่อเซสชันทำงานแต่ข้อมูลเสีย ไม่ส่งรหัสผ่าน โทเคน หรือกุญแจส่วนตัว
สรุป
วินิจฉัยขั้นเชื่อมต่อที่เสีย แล้วตรวจสิทธิ์ข้อความและข้อมูลวิศวกรรมแยกกัน ขอ METRAVON ทบทวนค่าตั้ง MQTT พร้อมข้อผิดพลาดที่บันทึกและข้อกำหนดบริการ ไม่ใช่เพียงภาพสถานะออฟไลน์
