บทความนี้สำรวจวิธีที่เราสามารถดึงคำอธิบายโดยละเอียดของชาร์ดแต่ละรายการที่เข้าร่วมในสแนปชอตที่กำหนด
ในการดึงสถานะของสแน็ปช็อตที่กำหนดใน Elasticsearch เราใช้ปลายทาง API รับสถานะสแน็ปช็อต
ขอไวยากรณ์
ไวยากรณ์คำขอมีดังต่อไปนี้:
รับ _snapshot / _สถานะ
รับ _snapshot /< ที่เก็บ >/ _สถานะ
รับ _snapshot /< ที่เก็บ >/< สแนปชอต >/ _สถานะ
คำขอรองรับพารามิเตอร์เส้นทางต่อไปนี้:
- <ที่เก็บ> – ชื่อของที่เก็บสแน็ปช็อต สิ่งนี้มีประโยชน์มากในการจำกัดขอบเขตของการร้องขอไปยังที่เก็บที่กำหนด แทนที่จะเป็นการสืบค้นทั้งระบบ
-
– ระบุชื่อของสแน็ปช็อตเป้าหมาย คุณยังสามารถระบุสแน็ปช็อตหลายรายการเป็นรายการที่คั่นด้วยเครื่องหมายจุลภาค
เราสามารถละเว้นสแน็ปช็อตในพารามิเตอร์คำขอเพื่อดึงข้อมูลเกี่ยวกับสแน็ปช็อตที่กำลังทำงานอยู่
ร่างกายตอบสนอง
คำขอควรส่งคืนข้อมูลโดยละเอียดเกี่ยวกับสแนปชอต ข้อมูลดังกล่าวรวมอยู่ในคำตอบคือ:
- ที่เก็บ – ชื่อของที่เก็บที่มีสแน็ปช็อตอยู่
- สแนปชอต - ชื่อของสแนปชอต
- uuid – UUID ของสแนปชอต
- สถานะ – สถานะปัจจุบันของสแนปชอต สแนปชอตสามารถอยู่ในสถานะต่อไปนี้:
- รวม_global_state – ระบุว่าสถานะคลัสเตอร์ส่วนกลางรวมอยู่ในสแน็ปช็อตที่ระบุหรือไม่
- Shard_stats - แสดงจำนวนชาร์ด
- สถิติ – รายละเอียดเกี่ยวกับจำนวนไฟล์นับและขนาดของไฟล์ในสแน็ปช็อต
ก. ล้มเหลว – สแน็ปช็อตที่เสร็จสิ้นโดยมีข้อผิดพลาดและไม่สามารถกู้คืนข้อมูลที่สำรองไว้
ข. เริ่ม – ระบุว่าสแน็ปช็อตกำลังทำงานอยู่
ค. บางส่วน – แสดงว่ากู้คืนสถานะคลัสเตอร์ส่วนกลางแล้ว แต่ข้อมูลของชาร์ดอย่างน้อยหนึ่งรายการล้มเหลวในการจัดเก็บสำเร็จ
ง. ความสำเร็จ – ระบุว่าสแน็ปช็อตเสร็จสิ้นเรียบร้อยแล้ว
นี่คือข้อมูลบางส่วนที่ส่งคืนจากสถานะสแนปชอต
Elasticsearch สร้างสแนปชอต
เพื่อให้เห็นภาพวิธีใช้ Elasticsearch Get snapshot API ได้ดีที่สุด ให้เราสร้างสแน็ปช็อตตัวอย่าง โปรดทราบว่าส่วนนี้ไม่ครอบคลุมพื้นฐานของการสร้างที่เก็บ Elasticsearch หรือข้อกำหนดอื่นๆ สำหรับสแน็ปช็อตของ Elasticsearch
ตรวจสอบเอกสารเพื่อเรียนรู้เพิ่มเติม
สมมติว่าเรามีที่เก็บข้อมูลชื่อ elk_bakcups เราสามารถสร้างสแน็ปช็อตในที่เก็บนั้นด้วยคำขอดังที่แสดงต่อไปนี้:
curl -XPUT 'http://localhost:9200/_snapshot/elk_backups/test_snapshot?wait_for_completion=true' -ชม 'kbn-xsrf: กำลังรายงาน'คำขอก่อนหน้านี้เริ่มต้นการสร้างสแน็ปช็อตในที่เก็บที่ระบุ
บันทึก : เวลาที่ต้องใช้ในการสร้างสแน็ปช็อตขึ้นอยู่กับปัจจัยหลายประการ
Elasticsearch รับสถานะสแนปชอต
เมื่อเราเริ่มต้นกระบวนการสร้างสแนปชอตแล้ว เราจะสามารถตรวจสอบสถานะได้โดยเรียกใช้แบบสอบถามต่อไปนี้:
curl -XGET 'http://localhost:9200/_snapshot/elk_backups/test_snapshot/_status' -ชม 'kbn-xsrf: กำลังรายงาน'สิ่งนี้ควรส่งคืนข้อมูลโดยละเอียดเกี่ยวกับสถานะสแนปชอต ตัวอย่างผลลัพธ์ดังแสดงในต่อไปนี้:
{'ภาพรวม' : [
{
'ภาพรวม' : 'test_snapshot' ,
'ที่เก็บ' : 'each_backups' , < แข็งแกร่ง >
แข็งแกร่ง > 'อุอิอิด' : '9oOJtTunR_WC-1a7NA-9WQ' ,
'สถานะ' : 'ความสำเร็จ' ,
'include_global_state' : จริง ,
'shards_stats' : {
'กำลังเริ่มต้น' : 0 ,
'เริ่ม' : 0 ,
'จบ' : 0 ,
'เสร็จแล้ว' : 94 ,
'ล้มเหลว' : 0 ,
'ทั้งหมด' : 94
} ,
'สถิติ' : {
'เพิ่มขึ้น' : {
'file_count' : 282 ,
'size_in_bytes' : 750304
} ,
'ทั้งหมด' : {
'file_count' : 692 ,
'size_in_bytes' : 62159894
} ,
'start_time_in_millis' : 1663770043239 ,
'time_in_millis' : 26212
} ,
'ดัชนี' : { < แข็งแกร่ง >
แข็งแกร่ง > 'สตรีมข้อมูลของฉัน' : {
'shards_stats' : {
'กำลังเริ่มต้น' : 0 ,
'เริ่ม' : 0 ,
'จบ' : 0 ,
'เสร็จแล้ว' : 1 ,
'ล้มเหลว' : 0 ,
'ทั้งหมด' : 1
} ,
'สถิติ' : {
'เพิ่มขึ้น' : {
'file_count' : 0 ,
'size_in_bytes' : 0
} ,
'ทั้งหมด' : {
'file_count' : 10 ,
'size_in_bytes' : 13518
} ,
----------------- เอาท์พุท ตัดทอน ------------------------
ใน Kibana คุณสามารถตรวจสอบสถานะสแน็ปช็อตได้โดยไปที่ส่วน Stack Management – Snapshot and Restore
เลือกสแนปชอตเป้าหมายและดูรายละเอียด
บันทึก : โปรดทราบว่า Kibana ไม่ได้ให้รายละเอียดที่ครอบคลุมตามที่ได้รับจาก API สถานะสแนปชอตของ Elasticsearch
บทสรุป
ในโพสต์นี้ เราได้สำรวจพื้นฐานของการทำงานกับ API สถานะการรับสแนปชอต ซึ่งช่วยให้เราดึงข้อมูลโดยละเอียดเกี่ยวกับสแน็ปช็อตที่กำหนด
ขอบคุณที่อ่าน!