Gateway
การตรวจสอบสถานะ
คู่มือฉบับย่อสำหรับตรวจสอบการเชื่อมต่อของช่องทางโดยไม่ต้องเดา
การตรวจสอบอย่างรวดเร็ว
openclaw status— สรุปภายในเครื่อง: การเข้าถึง/โหมดของ gateway, คำแนะนำการอัปเดต, อายุการยืนยันตัวตนของช่องทางที่ลิงก์แล้ว, เซสชัน + กิจกรรมล่าสุดopenclaw status --all— การวินิจฉัยภายในเครื่องแบบเต็มรูปแบบ (อ่านอย่างเดียว, มีสี, ปลอดภัยต่อการวางเพื่อดีบัก)openclaw status --deep— ขอให้ gateway ที่กำลังทำงานทำการตรวจสุขภาพแบบสด (healthพร้อมprobe:true) รวมถึงการตรวจช่องทางรายบัญชีเมื่อรองรับopenclaw health— ขอ snapshot สุขภาพจาก gateway ที่กำลังทำงาน (เฉพาะ WS; ไม่มีซ็อกเก็ตช่องทางโดยตรงจาก CLI)openclaw health --verbose— บังคับตรวจสุขภาพแบบสดและพิมพ์รายละเอียดการเชื่อมต่อ gatewayopenclaw health --json— เอาต์พุต snapshot สุขภาพที่เครื่องอ่านได้- ส่ง
/statusเป็นข้อความเดี่ยวใน WhatsApp/WebChat เพื่อรับการตอบสถานะโดยไม่เรียกใช้ agent - Logs: tail
/tmp/openclaw/openclaw-*.logและกรองหาweb-heartbeat,web-reconnect,web-auto-reply,web-inbound
สำหรับ Discord และผู้ให้บริการแชตอื่น ๆ แถวเซสชันไม่ใช่สถานะการทำงานของซ็อกเก็ต
openclaw sessions, Gateway sessions.list และเครื่องมือ sessions_list ของ agent
อ่านสถานะบทสนทนาที่จัดเก็บไว้ ผู้ให้บริการอาจเชื่อมต่อใหม่และแสดงสถานะช่องทางที่ดี
ก่อนจะมีการสร้างแถวเซสชันใหม่ ใช้สถานะช่องทางและคำสั่ง health ด้านบนสำหรับตรวจสอบการเชื่อมต่อแบบสด
การวินิจฉัยเชิงลึก
- Creds บนดิสก์:
ls -l ~/.openclaw/credentials/whatsapp/<accountId>/creds.json(mtime ควรเป็นเวลาล่าสุด) - ที่เก็บเซสชัน:
ls -l ~/.openclaw/agents/<agentId>/sessions/sessions.json(สามารถ override path ได้ใน config) จำนวนและผู้รับล่าสุดจะแสดงผ่านstatus - ขั้นตอนการลิงก์ใหม่:
openclaw channels logout && openclaw channels login --verboseเมื่อรหัสสถานะ 409–515 หรือloggedOutปรากฏใน logs (หมายเหตุ: ขั้นตอนเข้าสู่ระบบด้วย QR จะเริ่มใหม่อัตโนมัติหนึ่งครั้งสำหรับสถานะ 515 หลังจับคู่) - Diagnostics เปิดใช้งานตามค่าเริ่มต้น gateway จะบันทึกข้อเท็จจริงเชิงปฏิบัติการ เว้นแต่จะตั้งค่า
diagnostics.enabled: falseเหตุการณ์หน่วยความจำบันทึกจำนวนไบต์ RSS/heap, แรงกดดันตาม threshold และแรงกดดันจากการเติบโต แรงกดดันหน่วยความจำระดับวิกฤตจะถูก log ผ่าน logger ของ gateway เมื่อตั้งค่าdiagnostics.memoryPressureSnapshot: trueแรงกดดันหน่วยความจำระดับวิกฤตจะเขียนชุดข้อมูลเสถียรภาพก่อน OOM ด้วย ซึ่งมีสถิติ V8 heap, ตัวนับ Linux cgroup เมื่อมี, จำนวนทรัพยากรที่ใช้งานอยู่ และไฟล์เซสชัน/ถอดเสียงที่ใหญ่ที่สุดตาม path สัมพัทธ์ที่ redacted แล้ว คำเตือน liveness บันทึกความหน่วงของ event-loop, การใช้งาน event-loop, อัตราส่วน CPU-core และจำนวนเซสชันที่ active/waiting/queued เมื่อโปรเซสกำลังทำงานแต่เต็มขีดความสามารถ เหตุการณ์ payload ขนาดใหญ่เกินจะบันทึกสิ่งที่ถูกปฏิเสธ ตัดทอน หรือแบ่งชิ้น พร้อมขนาดและขีดจำกัดเมื่อมี ข้อมูลเหล่านี้จะไม่บันทึกข้อความ เนื้อหาไฟล์แนบ, body ของ Webhook, body คำขอหรือคำตอบดิบ, tokens, cookies หรือค่าความลับ Heartbeat เดียวกันจะเริ่มตัวบันทึกเสถียรภาพแบบมีขอบเขต ซึ่งเข้าถึงได้ผ่านopenclaw gateway stabilityหรือ Gateway RPCdiagnostics.stabilityการออกจาก Gateway แบบ fatal, timeout ระหว่าง shutdown และความล้มเหลวในการเริ่มต้นหลัง restart จะคง snapshot ล่าสุดของตัวบันทึกไว้ที่~/.openclaw/logs/stability/เมื่อมีเหตุการณ์; แรงกดดันหน่วยความจำระดับวิกฤตก็ทำเช่นกันเฉพาะเมื่อตั้งค่าdiagnostics.memoryPressureSnapshot: trueตรวจสอบ bundle ที่บันทึกล่าสุดด้วยopenclaw gateway stability --bundle latest - สำหรับรายงานบั๊ก ให้รัน
openclaw gateway diagnostics exportและแนบ zip ที่สร้างขึ้น export จะรวมสรุป Markdown, bundle เสถียรภาพล่าสุด, metadata ของ log ที่ sanitized แล้ว, snapshot สถานะ/สุขภาพของ Gateway ที่ sanitized แล้ว และรูปร่าง config ออกแบบมาเพื่อแชร์: ข้อความแชต, body ของ Webhook, เอาต์พุตเครื่องมือ, credentials, cookies, ตัวระบุบัญชี/ข้อความ และค่าความลับจะถูกละเว้นหรือ redacted ดู Diagnostics Export
การกำหนดค่า health monitor
gateway.channelHealthCheckMinutes: ความถี่ที่ gateway ตรวจสุขภาพช่องทาง ค่าเริ่มต้น:5ตั้งเป็น0เพื่อปิดการ restart โดย health-monitor ทั่วทั้งระบบgateway.channelStaleEventThresholdMinutes: ระยะเวลาที่ช่องทางที่เชื่อมต่อแล้วสามารถ idle ได้ก่อนที่ health monitor จะถือว่า stale และ restart ค่าเริ่มต้น:30ให้ค่านี้มากกว่าหรือเท่ากับgateway.channelHealthCheckMinutesgateway.channelMaxRestartsPerHour: เพดานแบบ rolling หนึ่งชั่วโมงสำหรับการ restart โดย health-monitor ต่อช่องทาง/บัญชี ค่าเริ่มต้น:10channels.<provider>.healthMonitor.enabled: ปิดการ restart โดย health-monitor สำหรับช่องทางเฉพาะ โดยยังคงเปิดการ monitor ทั่วทั้งระบบไว้channels.<provider>.accounts.<accountId>.healthMonitor.enabled: override แบบหลายบัญชีที่มีผลเหนือการตั้งค่าระดับช่องทาง- override รายช่องทางเหล่านี้ใช้กับ monitor ช่องทางในตัวที่เปิดเผยตัวเลือกนี้ในปัจจุบัน: Discord, Google Chat, iMessage, Microsoft Teams, Signal, Slack, Telegram และ WhatsApp
การ monitor uptime
บริการ monitor uptime ภายนอกควรใช้ endpoint /health เฉพาะ ไม่ใช่ /v1/chat/completions
- ควรใช้:
GET /health— ตอบกลับทันที, ไม่สร้างเซสชัน, ไม่เรียก LLM, คืนค่า{"ok":true,"status":"live"} - ไม่ควรใช้:
/v1/chat/completionsสำหรับ health checks — แต่ละคำขอจะสร้างเซสชัน agent เต็มรูปแบบพร้อม snapshot ของ skill, การประกอบ context และการเรียก LLM
เมื่อไม่มี header x-openclaw-session-key หรือฟิลด์ user ระบบ /v1/chat/completions จะสร้างเซสชันสุ่มใหม่สำหรับแต่ละคำขอ บริการ monitor ที่ ping ทุก 15 นาทีจะสร้างประมาณ 96 เซสชัน/วัน แต่ละเซสชันใช้พื้นที่ 4–22KB เมื่อเวลาผ่านไป สิ่งนี้ทำให้ที่เก็บเซสชันพองตัวและอาจนำไปสู่ context window overflow
ตัวอย่างการตั้งค่าบริการ monitor
- BetterStack: ตั้ง URL health check เป็น
https://<your-gateway-host>:<port>/health - UptimeRobot: เพิ่ม HTTP monitor ใหม่ด้วย URL
https://<your-gateway-host>:<port>/health - ทั่วไป: HTTP GET ใด ๆ ไปที่
/healthจะคืนค่า 200 พร้อม{"ok":true}เมื่อ gateway สุขภาพดี
เมื่อมีบางอย่างล้มเหลว
logged outหรือสถานะ 409–515 → ลิงก์ใหม่ด้วยopenclaw channels logoutแล้วopenclaw channels login- เข้าถึง Gateway ไม่ได้ → เริ่มใช้งาน:
openclaw gateway --port 18789(ใช้--forceหากพอร์ตไม่ว่าง) - ไม่มีข้อความขาเข้า → ยืนยันว่าโทรศัพท์ที่ลิงก์ออนไลน์อยู่และผู้ส่งได้รับอนุญาต (
channels.whatsapp.allowFrom); สำหรับแชตกลุ่ม ให้ตรวจว่า allowlist + กฎ mention ตรงกัน (channels.whatsapp.groups,agents.list[].groupChat.mentionPatterns)
คำสั่ง "health" เฉพาะ
openclaw health ขอ snapshot สุขภาพจาก gateway ที่กำลังทำงาน (ไม่มีซ็อกเก็ตช่องทางโดยตรง
จาก CLI) ตามค่าเริ่มต้น คำสั่งนี้อาจคืน snapshot gateway ที่ cache สดไว้ จากนั้น
gateway จะ refresh cache นั้นในพื้นหลัง openclaw health --verbose จะบังคับ
การตรวจแบบสดแทน คำสั่งจะรายงาน creds/อายุ auth ที่ลิงก์แล้วเมื่อมี,
สรุปการตรวจรายช่องทาง, สรุป session-store และระยะเวลาการตรวจ คำสั่งจะออกด้วยสถานะ
ไม่เป็นศูนย์หากเข้าถึง gateway ไม่ได้ หรือการตรวจล้มเหลว/timeout
ตัวเลือก:
--json: เอาต์พุต JSON ที่เครื่องอ่านได้--timeout <ms>: override timeout การตรวจค่าเริ่มต้น 10 วินาที--verbose: บังคับตรวจแบบสดและพิมพ์รายละเอียดการเชื่อมต่อ gateway--debug: alias สำหรับ--verbose
snapshot สุขภาพประกอบด้วย: ok (boolean), ts (timestamp), durationMs (เวลาการตรวจ), สถานะรายช่องทาง, ความพร้อมใช้งานของ agent และสรุป session-store