อ้างอิง / Collect
ขั้นตอนการทำงานและการดำเนินการ
การดำเนินงานประจำวันของแผงควบคุม: โหมดการทำงาน, หมวดหมู่การติดตาม, พารามิเตอร์, การแจ้งเตือน, การส่งออกข้อมูล, การสำรองข้อมูล และขีดความสามารถ
สำหรับการเชื่อมต่อครั้งแรก ให้ใช้บัญชีและรูปแบบเซสชัน เพื่อดูคำอธิบายเกี่ยวกับเวอร์ชันที่บันทึกไว้ นโยบายเหตุการณ์ และช่องว่าง โปรด ดูวิธีการทำงานของระบบการเก็บข้อมูล คู่มือนี้ครอบคลุมการดำเนินงานประจำวันและการกู้คืนข้อมูล
ขั้นตอนการทำงานของผู้ใช้#
แผนภาพในรูปแบบข้อความ
- เลือกพื้นที่จัดเก็บและวิธีการปกป้องกุญแจ → เปิดแผงควบคุมด้วยโทเค็นของมัน
- เปิดแผงควบคุมด้วยโทเค็นของมัน → เลือกพื้นที่ทำงาน
- เลือกพื้นที่ทำงาน → กำหนดเส้นทาง Direct หรือ proxy
- กำหนดเส้นทาง Direct หรือ proxy → ป้อนหมายเลขโทรศัพท์หรือเลือกไฟล์ / QR
- ป้อนหมายเลขโทรศัพท์หรือเลือกไฟล์ / QR → ตรวจสอบตัวตนของบัญชีและเลือกกลุ่มที่สามารถเข้าถึงได้
- ตรวจสอบตัวตนของบัญชีและเลือกกลุ่มที่สามารถเข้าถึงได้ → กำหนดนโยบายการบันทึกเหตุการณ์และไฟล์แนบ แล้วเริ่มการติดตาม
- กำหนดนโยบายการบันทึกเหตุการณ์และไฟล์แนบ แล้วเริ่มการติดตาม → ติดตามข้อผิดพลาด การเข้าถึง แถวรอ และพื้นที่ดิสก์
- ติดตามข้อผิดพลาด การเข้าถึง แถวรอ และพื้นที่ดิสก์ → รักษาจุดตรวจสอบอิสระ
- รักษาจุดตรวจสอบอิสระ → ส่งออกและตรวจสอบข้อมูล
การอนุญาต การเชื่อมต่อเครือข่าย การเข้าถึงกลุ่ม และความครบถ้วนของการ ส่ง เป็นคุณสมบัติที่ต่างกัน สถานะการเชื่อมต่อสีเขียวไม่ได้หมายความว่าทุก เหตุการณ์ได้ถูกบันทึกไว้แล้ว
แบ่งปันงานโดยไม่ต้องแบ่งปันกุญแจหลัก#
การเข้าถึงแบบเปิด (Open Access) เพื่อมอบโทเค็นส่วนตัวให้กับผู้ตรวจสอบหรือนักวิเคราะห์ เลือกบัญชี และแชทที่พวกเขาสามารถเปิดได้ จากนั้นอนุญาตให้ดู ส่งออก หรือดำเนินการต่างๆ ผู้ดำเนินการที่เริ่ม/หยุดการเก็บข้อมูลจำเป็นต้องมีสิทธิ์เข้าถึงพื้นที่ทำงานทั้งหมด; ส่วนผู้ตรวจสอบ สามารถถูกจำกัดให้เข้าถึงได้เฉพาะการสนทนาเดียวเท่านั้น ข้อจำกัดของเซสชัน ระยะเวลาหมดอายุ และกฎ IP เป็นเรื่องที่แยกต่างหาก จากการอนุญาตบัญชี Telegram ดูส่วนการเข้าถึงและสิทธิ์
ใช้ "Open sessions" เพื่อปิดการเชื่อมต่อ หรือเพิกถอนสิทธิ์การเข้าถึงเพื่อปิด ทุกเซสชันของมัน คอนโซลผู้ดูแลระบบรวมกิจกรรมของกระบวนการปัจจุบันจาก ทุกพื้นที่ทำงาน การปิดเซสชันจะไม่ส่งผลต่อการทำงานของระบบการเก็บข้อมูล
โหมดการทำงาน#
| โหมด | การดำเนินการ | พฤติกรรม |
|---|---|---|
| Demo | scripts\Demo.cmd หรือ --demo |
ข้อมูลสังเคราะห์; การเชื่อมต่อกับบัญชีจริงถูกปิดใช้งาน |
| ข้อสังเกต | เริ่มการสังเกต | บันทึกการอัปเดตที่ส่งมาสำหรับแหล่งข้อมูลที่เลือกไว้ |
| ภาพรวมประวัติ | แหล่งข้อมูล → ภาพถ่ายประวัติ | บันทึกข้อความล่าสุดได้สูงสุด 500 ข้อความ; ไม่มีการสร้างใหม่ของทุกการเปลี่ยนแปลงในอดีต |
| หยุดชั่วคราว | หยุดการสังเกต | หยุดการเก็บข้อมูลในขณะที่ยังคงเก็บข้อมูลและงานที่อยู่ในคิว |
| ตรวจสอบ/ส่งต่อ | การส่งออก | ZIP, JSONL/CSV/HTML, จุดตรวจสอบ, ใบรับการดำเนินการ และคำขอประทับเวลา |
| หลายบัญชี | พื้นที่ทำงาน หรือปุ่ม + ด้านบน | สามารถสร้างพื้นที่ทำงานแยกกันได้ไม่จำกัดภายในกระบวนการเดียว |
การเข้าถึงเดโมท้องถิ่นจะเปิดอัตโนมัติโดยไม่ต้องป้อนโทเค็นด้วยมือ มันใช้ ความสามารถที่มีอายุการใช้งานตามกระบวนการ (process-lifetime capability) ซึ่งใช้ได้เฉพาะสำหรับการเข้าถึงแบบลูปแบ็กโดยตรงไปยัง เดโมสังเคราะห์ที่แยกเป็นอิสระ; โทเค็นของแผงหลักไม่ถูกเปิดเผย พื้นที่ทำงานจริงและการเข้าถึงเดโมจากระยะไกล หรือผ่านพร็อกซี ยังคงต้องใช้การยืนยันตัวตนด้วยโทเค็น การเข้าสู่เดโมไม่มอบสิทธิ์การอนุญาตของ Telegram
หมวดหมู่การติดตาม#

ใน Sources → Capture settings → Choose which changes to preserve, ให้เลือกข้อความใหม่ การแก้ไข การแจ้งเตือนการลบ การอัปเดตปฏิกิริยา และเหตุการณ์สมาชิกอย่างแยกกัน ค่าเริ่มต้น จะเก็บรักษาทุกหมวดหมู่ ข้อความ การแก้ไข และการลบจะรักษาบริบทเดิม ในขณะที่ปิดการอัปเดตปฏิกิริยา/สมาชิกแยกกัน การบันทึกกิจกรรมที่มองเห็นได้ทั้งหมดจะ บันทึกทั้งห้าประเภท การตั้งค่าล่วงหน้าจะเปลี่ยนรูปแบบ; กด “บันทึกการตั้งค่าการติดตาม” เพื่อนำไปใช้
นโยบายที่บันทึกไว้จะใช้กับแหล่งข้อมูลทั้งหมดที่เลือกไว้ในพื้นที่ทำงานนั้น ส่วน พื้นที่ทำงานอื่น ๆ จะรักษาการตั้งค่าของตนเองไว้ การเปลี่ยนแปลงแต่ละครั้งจะบันทึกค่าก่อน/หลัง ที่ลงนามไว้; นโยบายปัจจุบันยังถูกรวมไว้ในใบยืนยันกระบวนการและบันทึก การเริ่มต้นการสังเกตการณ์ด้วย การปิดใช้งานหมวดหมู่จะไม่ลบการสังเกตการณ์ก่อนหน้านี้ การเปิดใช้งาน ใหม่จะไม่กู้คืนการเปลี่ยนแปลงที่พลาดไป ในเวอร์ชันนี้ ไม่มีฟังก์ชันการแทนที่หมวดหมู่ตามกลุ่ม
ให้เปิดใช้งานการบันทึกข้อความใหม่เมื่อเนื้อหาเดิมมีความสำคัญ: การแจ้งเตือนการลบไม่สามารถ กู้คืนข้อความที่ไม่เคยถูกบันทึกไว้ได้ บันทึกการดำเนินงาน/การครอบคลุม และเหตุการณ์บริการกลุ่ม อื่นๆ จะถูกเก็บรักษาไว้เสมอ ภาพถ่ายประวัติที่ชัดเจนจะแยกต่างหากจาก การเลือกหมวดหมู่แบบเรียลไทม์ และอาจรวมถึงข้อความบริการด้วย สวิตช์เหล่านี้ไม่ ลบข้อมูลเมตาดาต้าของปฏิกิริยา/สมาชิกที่ฝังอยู่ในวัตถุ Telegram ที่ถูกบันทึกไว้แล้ว
ภาพถ่ายประวัติอาจจัดไฟล์แนบเข้าคิวระหว่างที่ระบบถูกหยุดชั่วคราว ให้เริ่มการสังเกตเพื่อประมวลผล ไฟล์เหล่านั้น การจัดเข้าคิวไม่หมายความว่าไฟล์ได้ถูกดาวน์โหลดแล้ว ไฟล์ต้นฉบับที่ไม่มีอยู่จะไม่ถูกแทนที่ ด้วยเวอร์ชันที่แก้ไขใหม่กว่า; ผลลัพธ์จะถูกบันทึกแยกกัน
การล็อกจะล้างการเข้าถึงเบราว์เซอร์และฟิลด์ลับ แต่ยังคงให้กระบวนการเก็บข้อมูลทำงานต่อไป การปิดแท็บก็ยังคงให้กระบวนการทำงานต่อไปเช่นกัน การหยุดกระบวนการ Python หรือบริการ จะหยุดการเก็บข้อมูลโดยไม่ขึ้นกับสถานะของเบราว์เซอร์
การลบพื้นที่ทำงานเพิ่มเติมจะหยุดตัวเก็บข้อมูลและลบข้อมูลท้องถิ่นของมัน หาก
ไฟล์ถูกล็อกหรือเกิดข้อผิดพลาดในระบบไฟล์จนทำให้การลบถูกขัดจังหวะ แผงควบคุมจะรายงานความล้มเหลวและ
ยังคงแสดงพื้นที่ทำงานนั้นว่าไม่สามารถใช้งานได้ (DeletionPending) ปิดโปรแกรมที่ถือ
ไฟล์ดังกล่าวและลองลบอีกครั้ง การเริ่มต้น TgWitness ใหม่จะทำให้พื้นที่ทำงานนั้นยังคงหยุดทำงานอยู่ และ
ไม่สร้างบันทึกหรือกุญแจที่ถูกลบไปบางส่วนขึ้นใหม่ การลบที่สำเร็จจะถูกบันทึก
เพียงหลังจากที่ไดเรกทอรีถูกลบไปแล้วเท่านั้น; สำเนาที่ส่งออกหรือสำรองข้อมูลไว้แยกต่างหากจะยังคงอยู่
ภายใต้นโยบายการเก็บรักษาข้อมูลของตนเอง
การแจ้งเตือน#
แหล่งข้อมูลเปิด → การแจ้งเตือน → การแจ้งเตือนและสรุปประจำวัน TgWitness ใช้ Apprise เพื่อส่งการแจ้งเตือนไปยัง Matrix, Telegram, Discord, Slack, ntfy, email และ บริการอื่น ๆ ที่รองรับ คุณสามารถเพิ่มจุดหมายปลายทางหลายแห่งไปยังพื้นที่ทำงานเดียวได้
- ป้อน URL ปลายทาง Apprise หนึ่งรายการต่อบรรทัด ใช้ แคตตาล็อกบริการและรูปแบบ URL ที่เหมาะสมกับบริการของคุณ
- เปิดการแจ้งเตือนการส่ง (Send notifications) แล้วเลือกการแจ้งเตือนปัญหา การเปลี่ยนแปลงใน การสนทนาที่ติดตาม และสรุปประจำวัน การสรุปประจำวันใช้เวลามาตรฐานของเซิร์ฟเวอร์
- เปิดตัวเลือก “รวมข้อความสั้น” หากต้องการให้ข้อความที่บันทึกไว้จากข้อความที่ถูกลบและแก้ไข ปรากฏในคำเตือน
- กด "บันทึกการแจ้งเตือน" แล้วกด "ส่งทดสอบ" เพื่อตรวจสอบการส่งถึง
สำหรับตัวรับของคุณเอง ให้ใช้ JSON webhook ของ Apprise
ตัวอย่างเช่น jsons://notify.example.org/tgwitness ส่ง JSON ผ่าน HTTPS ไปยัง
จุดปลายทางนั้น นี่เป็นตัวอย่างสมมติ; ให้แทนที่ด้วยจุดปลายทางของคุณเอง
จุดหมายปลายทางและตั้งค่าเป็นส่วนหนึ่งของพื้นที่ทำงานที่เลือกไว้ การแจ้งเตือนการเปลี่ยนแปลง ครอบคลุมแหล่งข้อมูลที่ติดตามอยู่ รวมถึงการสนทนาที่เพิ่มใหม่ สัญลักษณ์รูปกระดิ่งในแถบด้านบน ยังแสดงปัญหาล่าสุดและการเปลี่ยนแปลงในการสนทนาด้วย
ในเวอร์ชันสาธิต การควบคุมการแจ้งเตือนจะปรากฏอยู่ แต่ฟังก์ชันการส่งถูกปิดใช้งานไว้ ให้ตั้งค่า การส่งในสภาพแวดล้อมการทำงานจริง การแจ้งเตือนจะใช้เส้นทาง Direct, SOCKS5 หรือ HTTP ของสภาพแวดล้อมการทำงานนั้น; MTProxy ไม่สามารถส่งการแจ้งเตือนได้ จุดหมายปลายทางที่ไม่ใช่ HTTP เช่น SMTP จำเป็นต้อง ใช้เส้นทางตรง
การจัดวางแผง#

บันทึกแสดงข้อมูลการสังเกต การค้นหา และตัวกรอง การแก้ไขจะเปิดเวอร์ชันที่ถูกบันทึกไว้; การลบจะเปิดเนื้อหาเดิมหากมีอยู่ แหล่งที่มาที่ไม่ทราบจะยังคงระบุไว้อย่างชัดเจน จำนวนข้อมูลสามารถดูได้ในส่วน "ภาพรวม" (Overview); รายละเอียดการเก็บข้อมูลจะอยู่ในคู่มือท้องถิ่น
เปิดข้อความที่ถูกแก้ไขเพื่อเปรียบเทียบเวอร์ชันด้วยมุมมอง แสดงความต่างในข้อความ หรือ แสดงเทียบกัน ส่วน ข้อมูลดิบ จะแสดงฟิลด์ที่บันทึกไว้ การเปลี่ยนแปลงลิงก์ที่ซ่อนอยู่และปุ่มบอทจะแสดงแยกต่างหาก เปิดตัวอย่างไฟล์แนบเพื่อตรวจสอบรูปภาพ เสียง หรือวิดีโอที่บันทึกไว้ โดยปุ่มดาวน์โหลดจะช่วยให้คุณนำไฟล์ต้นฉบับที่เก็บรักษาไว้ออกมาใช้งานได้
Live จะอัปเดตบันทึกเหตุการณ์และแชททันทีที่ข้อมูลเข้ามา คุณสามารถหยุดชั่วคราวขณะตรวจสอบข้อมูล หรือใช้ปุ่มเหตุการณ์ใหม่เมื่อพร้อม โดยที่การเก็บรวบรวมข้อมูลยังคงทำงานต่อไป กด Ctrl/Cmd+K เพื่อค้นหาคำสั่งในพาเนลและค้นหาข้อมูลในบันทึกเหตุการณ์
ส่วน "แหล่งข้อมูล" ประกอบด้วยขอบเขตการสังเกต (การสนทนาที่เลือกไว้, โฟลเดอร์ Telegram หรือทั้ง บัญชี), การสนทนาที่เข้าถึงได้ทุกประเภท, แหล่งข้อมูลที่เลือกไว้พร้อมดาวแสดงลำดับความสำคัญ, การตั้งค่า ไฟล์แนบและการตรวจสอบซ้ำ รวมถึงภาพถ่ายประวัติ แหล่งข้อมูลส่วนตัวถูกเลือกผ่านกล่องสนทนา/ID โดยไม่มีลิงก์สาธารณะ สถานะการเข้าถึงอธิบายการตรวจสอบล่าสุด ไม่ใช่สิทธิ์การเข้าถึงถาวร
กรองแหล่งข้อมูล เลือกช่องทำเครื่องหมาย จากนั้นเปิดใช้งาน หยุดชั่วคราว หรือทำเครื่องหมายเป็นรายการสำคัญพร้อมกันได้ ในรายการแชทที่มีอยู่ ปุ่ม เพิ่มรายการที่เลือก จะใช้รายการที่คุณเลือก ส่วน เพิ่มทุกรายการที่ตรงกัน จะใช้คำค้นหาและตัวกรองประเภทในปัจจุบัน
Chats → People แสดงรายชื่อทุกคนที่มีข้อความที่บันทึกไว้; เมื่อเปิดโปรไฟล์ผู้ใช้ สำหรับแชทนั้น การคลิกจะเปิดโปรไฟล์ของบุคคลนั้นพร้อมลิงก์ไปยังบันทึกในสมุดบันทึก
Witness สร้างโทเค็นพยานแบบอ่านอย่างเดียว แสดงเวลาที่พยานแต่ละตัวตรวจสอบครั้งสุดท้าย และ ให้คำสั่งและตัวเลือกเพื่อเรียกใช้พยานหนึ่งตัว (พยานอิสระ)
ส่วน "Parameters" กำหนดทุกขีดจำกัดและจังหวะการทำงานของพื้นที่ทำงานที่ไม่ได้ระบุไว้ในหน้าอื่น:
จำนวนบทสนทนาที่อ่าน, ความถี่ในการอ่านใหม่ของรายชื่อแชท, ช่วงเวลาของ heartbeat และ checkpoint
บัฟเฟอร์เริ่มต้น, วิธีที่ระบบกระจายคำขอในการตรวจสอบใหม่ (ความล่าช้าครั้งแรก, จำนวนแชทต่อ
ครั้ง, เวลาพักระหว่างการสนทนา, จำนวนข้อความที่กู้คืนและขอใหม่), พื้นที่ดิสก์สำรอง, เวลาหมดอายุและ
การลองใหม่ในการดาวน์โหลด, สิ่งที่โปรไฟล์ผู้ใช้ค้นหา (รวมถึงนิพจน์ปกติของคุณเอง),
ขนาดและความถี่ของการแจ้งเตือน, ข้อจำกัดของ snapshot, ZIP และการดาวน์โหลดผ่านเบราว์เซอร์, รวมถึง
เวลาหมดอายุและลองใหม่ของไคลเอนต์ Telegram. แต่ละฟิลด์จะแสดงช่วงค่าและค่าเริ่มต้น; ฟิลด์ที่เปลี่ยนแปลงแล้ว
จะถูกทำเครื่องหมายและสามารถคืนค่าได้ทีละรายการหรือทั้งหมดพร้อมกัน การเปลี่ยนแปลงทุกครั้งจะถูกบันทึกเป็น
parameters.changed พร้อมค่าก่อนและหลังการเปลี่ยนแปลง และบันทึกการเริ่มต้นการสังเกตการณ์จะระบุ
ชื่อค่าที่มีผลบังคับใช้ ค่าจะมีผลตั้งแต่การใช้งานครั้งถัดไป; ส่วนเวลาหมดอายุและจำนวนครั้งลองใหม่ของไคลเอนต์จะมีผลตั้งแต่
การเชื่อมต่อครั้งถัดไป ส่วนช่วงเวลาตรวจสอบซ้ำ ประเภทและขนาดไฟล์แนบ หลักฐาน และช่วงเวลาคัดลอกข้อมูลนอกเซิร์ฟเวอร์
จะอยู่ในหน้าของตัวเองและสามารถตั้งค่าได้ทุกค่าในช่วงที่กำหนด ไม่จำกัดเฉพาะค่าที่ตั้งไว้ล่วงหน้าเท่านั้น
ไอคอนรูปกระดิ่งในแถบด้านบนแสดงปัญหาและเปลี่ยนแปลงล่าสุดในแชทที่ถูกติดตาม; ข้อความที่ยังไม่ได้อ่าน จะถูกนับจนกว่าจะถูกทำเครื่องหมายว่าอ่านแล้ว การเปลี่ยนแปลงถูกจัดกลุ่มตามแชทและชั่วโมง ("12 ข้อความถูกลบ, 1 ข้อความถูกแก้ไข, 0 ข้อความไม่พบ") และปัญหาต่างๆ เช่น การออกจากระบบหรือพื้นที่ดิสก์เต็ม จะยังคงอยู่ในรายการ ไม่ว่าแชทจะมีความเคลื่อนไหวมากเพียงใด
การตั้งค่าบัญชีเริ่มต้นที่ช่องหมายเลขโทรศัพท์ การคลิก “ต่อไป” จะนำคุณไปยัง หน้าป้อนรหัสโดยตรง โดยจะขอข้อมูลรับรอง API เฉพาะเมื่อยังไม่มีเท่านั้น QR และการนำเข้าไฟล์เป็น แท็บทางเลือก ข้อมูลรับรอง API ที่บันทึกไว้จะถูกใช้ซ้ำได้เฉพาะภายในพื้นที่ทำงานของตัวเองเท่านั้น หน้าจอป้อนข้อมูลไม่มีแถบด้านข้าง สถิติ หรือส่วนตั้งค่า ไอคอนการตั้งค่า เปิดการควบคุม API, พร็อกซี, พื้นที่จัดเก็บ และบัญชีเพิ่มเติม การติดตั้งใหม่ เริ่มต้นที่นี่; บัญชีที่เชื่อมต่อแล้วแต่ยังไม่ได้เลือกแหล่งข้อมูลจะเริ่มต้นที่ "เลือกแชท" การเปลี่ยนเส้นทางต้องหยุดการสังเกตชั่วคราวและยกเลิกการเข้าสู่ระบบที่ยังไม่เสร็จสิ้น บันทึกที่มีอยู่ ไม่สามารถผูกกับบัญชี Telegram อื่นได้โดยอัตโนมัติ
การส่งออกจะตรวจสอบความสมบูรณ์ของบันทึกและสร้างไฟล์ที่สามารถพกพาได้ ID ของพื้นที่ทำงาน สามารถส่งต่อไปยัง CLI สำหรับการดาวน์โหลดได้ การส่งออกแต่ละครั้งจะกำหนดคำนำหน้าของบันทึกเต็มรูปแบบ; เหตุการณ์ ที่เกิดขึ้นในภายหลังจะถูกบันทึกในไฟล์ส่งออกถัดไป ตัวกรองการค้นหาไม่เปลี่ยนแปลงขอบเขตของแพ็กเกจ ข้อมูลรายละเอียดเกี่ยวกับการลงนามและขอบเขตการครอบคลุมอยู่ในส่วน "การตรวจสอบและข้อจำกัด"
แผงควบคุมจะแสดงสถานะของ Collector, สื่อที่อยู่ในคิว/ล้มเหลว, สื่อที่รอการประมวลผลที่เก่าที่สุด, พื้นที่ว่าง บนดิสก์, การหยุดชั่วคราวของคำขอ และแหล่งข้อมูลที่การเข้าถึงยังไม่ได้รับการยืนยัน ภายใต้ส่วน Collector health รายละเอียดเหล่านี้จะถูกพับเก็บไว้โดยเริ่มต้นและซ่อนไว้บนหน้า Account บัตรตั้งค่า จะแสดงขั้นตอนต่อไป: เชื่อมต่อบัญชี, เลือกแหล่งข้อมูล หรือเริ่มการสังเกตการณ์ รายชื่อบัญชีเป็นภาพถ่ายขณะโหลด; พื้นที่ทำงานที่เลือกจะอัปเดตเป็นระยะๆ นี่ไม่ใช่เครื่องมือติดตาม SLA แบบหลายกระบวนการ
ส่วนติดต่อผู้ใช้ (UI) ใช้ทรัพยากรท้องถิ่นและการแสดงผลข้อความสำหรับเนื้อหาต้นฉบับ ได้ทดสอบแล้วสำหรับเดสก์ท็อปและ เลย์เอาต์ Chromium แบบแคบ นี่ไม่ใช่การรับรองความสามารถในการเข้าถึงที่สมบูรณ์; การประเมินความสามารถในการใช้งานสำหรับโปรแกรมอ่านหน้าจอและผู้ใช้ทั่วไปยังคงเป็นงานที่แยกต่างหาก
สภาพแวดล้อมการติดตั้ง#
| สภาพแวดล้อม | การติดตั้ง | สถานะการตรวจสอบ |
|---|---|---|
| Windows PC/server | Python 3.11+, สคริปต์\Setup.cmd/Start.cmd, ไดเรกทอรีข้อมูลส่วนตัว | ได้ตรวจสอบในระบบ Windows/Python 3.12 แล้ว |
| เซิร์ฟเวอร์ Linux/VPS | Python venv, ผู้ใช้บริการเฉพาะ, HTTPS/SSH | มีตัวอย่างโค้ด CI และ systemd; ไม่ได้ถูกดำเนินการบนโฮสต์นี้ |
| macOS | Python venv, กระบวนการทำงานในพื้นหน้า หรือ ตัวแทนผู้ใช้ | มีตัวอย่าง launchd ให้ดู; ต้องตรวจสอบการติดตั้งแยกต่างหาก |
| Docker/Compose | ปริมาณคงที่, หนึ่งคนทำงาน | มีคำอธิบายและฟังก์ชันตรวจสอบการทำงานของ CI; Docker ไม่สามารถใช้งานได้ในระบบท้องถิ่น |
| เบราว์เซอร์บนโทรศัพท์ | เชื่อมต่อกับแผงควบคุมที่ได้รับการป้องกันบนเซิร์ฟเวอร์ที่กำลังทำงาน | ได้ทดสอบกับรูปแบบ Chromium ที่แคบแล้ว; ตัวเก็บข้อมูลไม่ทำงานบน iOS/Android |
ความสามารถในการพกพาได้หมายความว่าไม่จำเป็นต้องใช้บริการคลาวด์หรือสร้างส่วนหน้า (frontend) แต่ละเป้าหมายยังคง ต้องมีความเข้ากันได้กับไลบรารี Python/crypto ที่จำเป็น รวมถึงการเข้าถึงดิสก์ท้องถิ่นและเครือข่าย ดู DEPLOYMENT.md และแม่แบบบริการ
พื้นที่ทำงาน (Workspaces) ใช้ CPU, หน่วยความจำ และวงจรเหตุการณ์ (event loop) ร่วมกัน เพื่อแยกกระบวนการ (process isolation) ให้ใช้ อินสแตนซ์ พอร์ต ไดเรกทอรีข้อมูล และการอนุญาตบัญชีที่ต่างกัน ไม่มี แผงควบคุม (panel) ที่รวมกันสำหรับอินสแตนซ์ที่แยกกัน อย่ากำหนดให้หลายตัวทำงาน (workers) เชื่อมต่อกับฐานข้อมูลเดียวกัน
การตรวจสอบและส่งออกข้อมูล#
รัน python start.py --check ก่อนเริ่มสภาพแวดล้อมที่เตรียมไว้ เพิ่ม --json
สำหรับการตรวจสอบที่เครื่องอ่านได้ หรือส่งค่า --data-dir, --host และ --port ที่ต้องการ
คำสั่งนี้จะตรวจสอบเงื่อนไขเบื้องต้นโดยไม่ต้องเข้าสู่ระบบ Telegram หรือสร้างบันทึก
คำสั่งนี้ไม่ตรวจสอบบันทึกหรือยืนยันความพร้อมในการบันทึก; การตรวจสอบบันทึกจะดำเนินการ
ระหว่างการเริ่มต้นแอปพลิเคชัน พอร์ตที่ถูกใช้งานอยู่อาจเป็นเพียงอินสแตนซ์ที่มีอยู่เดิม
เบราว์เซอร์ที่สนับสนุน File System Access API จะบันทึกการส่งออกผ่านสตรีมที่เขียนได้ ส่วนเบราว์เซอร์อื่น ๆ จะบัฟเฟอร์ได้สูงสุด 128 MiB ให้ใช้ CLI แบบสตรีมมิ่งสำหรับการส่งออกที่มีขนาดใหญ่ หรือเบราว์เซอร์ที่ไม่มีฟังก์ชันสตรีมมิ่งไฟล์:
python -m tgwitness.download --token-file data/live/panel-token.txt --out evidence.zip
เพิ่ม --profile ID
จาก Exports เพื่อสร้างพื้นที่ทำงานลูก ใช้ --url https://server
สำหรับการเข้าถึงจากระยะไกล HTTP แบบธรรมดาจะได้รับการยอมรับเฉพาะสำหรับปลายทาง loopback เท่านั้น โทเค็น
จะถูกอ่านจากไฟล์และส่งในส่วนหัว (header) ไม่ถูกพิมพ์หรือใส่ใน URL การเปลี่ยนเส้นทาง
จะถูกปฏิเสธ ปลายทางที่มีอยู่จะไม่ถูกเขียนทับ การถ่ายโอนที่ล้มเหลวจะลบ
ไฟล์ส่วนชั่วคราวที่เกี่ยวข้อง SHA-256 ที่รายงานเป็นค่าตรวจสอบการถ่ายโอน; โปรดตรวจสอบไฟล์ ZIP ที่ลงนาม
แยกต่างหากด้วยลายนิ้วมือ/จุดตรวจสอบที่เชื่อถือได้
การสำรองข้อมูล การกู้คืนข้อมูล และการหยุดทำงาน#
- หยุดการสังเกตและยุติกระบวนการอย่างเรียบร้อย
- คัดลอกไดเรกทอรีข้อมูลทั้งหมด: ฐานข้อมูล, WAL/SHM (หากมี), media,
credentials.enc,signing.enc,network.enc, vault keys/metadata, token, checkpoints และทุกไดเรกทอรีprofiles/ - สำหรับโหมดกุญแจภายนอก (external-key mode) ให้เก็บรักษากุญแจหลัก (master key) และแต่ละ
vault.external.jsonแยกกัน การสร้างกุญแจใหม่ไม่สามารถกู้คืนความลับเดิมได้ - กู้คืนข้อมูลในขณะที่ปลายทางถูกหยุดทำงาน; ตั้งค่ากุญแจต้นฉบับ, จำกัด การเข้าถึง และตรวจสอบความสมบูรณ์ก่อนที่จะดำเนินการต่อ
- บันทึกช่วงเวลาที่ระบบหยุดทำงานและผลการตรวจสอบ ภาพถ่ายประวัติไม่สามารถพิสูจน์ได้ว่า ไม่มีการลบข้อความเกิดขึ้นในช่วงเวลาที่ระบบหยุดทำงาน
ไฟล์ ZIP ของหลักฐานไม่รวมเซสชัน/กุญแจส่วนตัว และไม่ใช่การสำรองข้อมูลแบบเต็มระบบ มีสี่สิ่งที่ได้รับการคุ้มครองอย่างแตกต่างกัน:
| อะไร | การป้องกัน |
|---|---|
| ส่งออกไฟล์โดยไม่ใช้รหัสผ่าน (ค่าเริ่มต้น) | ไม่มีการเข้ารหัส แต่มีลายเซ็น ดังนั้นการเปลี่ยนแปลงสามารถตรวจพบได้ แต่ผู้ถือไฟล์สามารถอ่านเนื้อหาได้ |
| ส่งออกไฟล์ด้วยรหัสผ่าน | หากตั้งรหัสผ่าน ไฟล์ที่ส่งออกเสร็จสิ้นจะถูกเก็บไว้ในรูปแบบ WinZip AES-256 ZIP ที่ 7-Zip และ WinRAR สามารถเปิดได้ โดยรหัสผ่านจะไม่ถูกเก็บไว้ (การจัดการหลักฐาน) |
| ฐานข้อมูลของบันทึกและไฟล์แนบที่เก็บไว้บนดิสก์ | TgWitness ไม่เข้ารหัสข้อมูล; ให้ใช้ดิสก์หรือโวลุ่มที่เข้ารหัส |
| เซสชัน Telegram และกุญแจลงนาม | ถูกเข้ารหัสในโฟลเดอร์ข้อมูล (credentials.enc, signing.enc, network.enc) |
การสำรองข้อมูลแบบครบวงจรคือไดเรกทอรีข้อมูลที่ถูกหยุดไว้ตามที่อธิบายข้างต้น ไม่ใช่การส่งออก
ใช้พื้นที่จัดเก็บที่ได้รับการป้องกันและกลไกการถ่ายโอนที่ได้รับการออกแบบอย่างรอบคอบสำหรับทั้งสองกรณี การส่งออกชั่วคราวบนเซิร์ฟเวอร์จะถูกเก็บไว้ใน
temporary-exports/ ของแต่ละพื้นที่ทำงาน; คำตอบที่เสร็จสมบูรณ์จะถูกล้างออก และไฟล์การส่งออกที่ถูกขัดจังหวะ
จะถูกลบออกในการเริ่มต้นระบบครั้งต่อไป ในขณะที่ล็อกอินสแตนซ์ของพื้นที่ทำงานนั้นยังคงถูกถืออยู่
เหตุการณ์การเชื่อมต่อที่ได้รับการฟื้นฟูไม่รับประกันการกู้คืนการเปลี่ยนแปลงระหว่างทาง งานสื่อที่คงอยู่และตำแหน่งการอัปเดตของ Telegram จะยังคงอยู่หลังการรีสตาร์ท; ดูรูปแบบหลักฐาน
ความจุและการเก็บรักษา#
ขีดจำกัดเริ่มต้น ซึ่งสามารถปรับเปลี่ยนได้ทั้งหมดภายใต้ส่วน Parameters: 1,000 บทสนทนาแรก, 500 ข้อความ
ต่อ snapshot, เนื้อหา ZIP ที่ลงนามและไม่ถูกบีบอัด 4 GiB (ไฟล์เก็บถาวรที่ใหญ่กว่าต้องใช้
verify.py --max-gib N) และพื้นที่สำรองสำหรับเบราว์เซอร์ 128 MiB. ไฟล์แนบใช้พื้นที่ 1–2,000 MiB ต่อ
ประเภท ในส่วน Sources → Attachments. CLI สำหรับการดาวน์โหลดตั้งค่าเริ่มต้นที่ 5 GiB ที่ถูกส่งไป พื้นที่ดิสก์ที่มีอยู่สามารถเป็น
ขีดจำกัดที่ต่ำกว่าได้ ให้สำรองพื้นที่สำหรับบันทึก, สื่อ, WAL, การส่งออกชั่วคราว และการสำรองข้อมูล
การส่งออกใช้ปริมาณข้อมูลแทน /tmp 512 MiB ของ Compose
วัดเหตุการณ์ต่อวินาที (events/second), อายุคิว (queue age), ไบต์ของสื่อ (media bytes) และความล่าช้าของดิสก์ (disk latency) แทนที่จะนับ กลุ่ม (groups) เพียงอย่างเดียว การทดสอบประสิทธิภาพแบบจำลองในท้องถิ่น (synthetic local benchmarks) ไม่รับประกันการส่งข้อความใน Telegram ไม่มีการลบข้อมูลที่เก็บรักษาไว้โดยอัตโนมัติ การลบส่วนท้ายของบันทึก (journal tail) จะทำให้ความสัมพันธ์ของบันทึกนั้น กับจุดตรวจสอบที่เก็บรักษาไว้ (checkpoints) ไม่ถูกต้อง
ระบบตรวจสอบซ้ำตามลำดับความสำคัญมีอยู่แล้ว: แหล่งข้อมูลที่ติดดาวจะถูกตรวจสอบซ้ำทุก 15 นาทีตามค่าเริ่มต้น, แหล่งข้อมูลอื่น ๆ ทุก 6 ชั่วโมง (ดูระดับการตรวจสอบซ้ำ). การส่งออกข้อมูล ที่ได้รับการป้องกันด้วยรหัสผ่านมีอยู่ตามที่อธิบายไว้ข้างต้น. การรับข้อมูล Telegram/proxy แบบเรียลไทม์, การเล่นซ้ำที่คงทน, บันทึกผู้ดูแลระบบและการสำรวจปฏิกิริยา, ผู้ทำงานแบบแยกส่วน, การเข้ารหัสบันทึกท้องถิ่นและสื่อ โดย TgWitness เอง และการตรวจสอบอิสระ ยังคงเป็นงานที่แยกต่างหาก การเข้าถึงตามขอบเขต ได้รับการบันทึกไว้ในส่วนการเข้าถึงและสิทธิ์ ดู READINESS.md, LIVE_ACCEPTANCE.md และ VERIFICATION.md.