วิธีใช้การตรวจสอบระบบคลาวด์ของอาลีบาบาเพื่อตั้งค่าการแจ้งเตือนแบบเรียลไทม์ของ CPU และแบนด์วิดท์
ในงานด้านเทคนิคของการดำเนินงานและการบำรุงรักษาและการจัดการระบบผู้มาใหม่จำนวนมากที่เพิ่งเริ่มใช้ระบบคลาวด์คอมพิวติ้งมักทำผิดพลาดร้ายแรง:
หลังจากซื้อเซิร์ฟเวอร์และปรับใช้ธุรกิจฉันคิดว่าทุกอย่างเรียบร้อยดี
.
จนถึงเที่ยงคืนของวันหนึ่งปริมาณการใช้งานที่พุ่งสูงขึ้นอย่างกะทันหันทำให้แบนด์วิดท์ติดขัดหรือกระบวนการวนซ้ำที่ไม่สิ้นสุดทำให้ CPU ถึง100% โดยตรงและทำให้ระบบหยุดทำงานโทรศัพท์ของลูกค้าถูกระเบิดและเจ้าหน้าที่ปฏิบัติการและบำรุงรักษารีบเข้าสู่ระบบพื้นหลังเพื่อตรวจสอบบันทึกวิศวกรทุกคนที่เคยประสบกับความเจ็บปวดจากการ "ดับไฟแบบพาสซีฟ" นี้ไม่ต้องการสัมผัสกับมันเป็นครั้งที่สอง
ในความเป็นจริง Alibaba Cloud เองก็มาพร้อมกับชุดเครื่องมือตรวจสอบโครงสร้างพื้นฐานที่มีประสิทธิภาพมาก-
การตรวจสอบระบบคลาวด์ (CloudMonitor)
.ตราบเท่าที่คุณกำหนดค่าการแจ้งเตือนแบบเรียลไทม์ของ CPU และแบนด์วิดท์เครือข่ายอย่างสมเหตุสมผลคุณจะได้รับการแจ้งเตือนภายในไม่กี่นาทีแรกของการเปลี่ยนแปลงตัวบ่งชี้ระบบเพื่อให้สามารถแก้ไขได้อย่างง่ายดายก่อนที่วิกฤตจะลุกลาม
ด้านล่างนี้ฉันจะรวมประสบการณ์การใช้งานและการบำรุงรักษาจริงเข้าด้วยกันและจะพาคุณไปสร้างระบบเตือนภัยแบบเรียลไทม์ของ Alibaba Cloud ที่มีประสิทธิภาพและเป็นศูนย์
1.เหตุใด CPU และแบนด์วิดท์จึงเป็น "เส้นชีวิตและความตาย" ของสัญญาณเตือน?
ในบรรดาตัวบ่งชี้การตรวจสอบต่างๆของเซิร์ฟเวอร์คลาวด์ (ECS) มีรายการเตือนต่างๆมากมายแต่
อัตราการใช้งาน CPU
และ
แบนด์วิดท์ทิศทางออก/เข้า (Bandwidth)
เป็นแกนกลางเสมอ
การใช้งาน CPU: สะท้อนถึงภาระคอมพิวเตอร์ของเซิร์ฟเวอร์หากซีพียูยังคงสูงกว่า90% เป็นเวลานานจะทำให้ความล่าช้าในการร้องขอ HTTP พุ่งสูงขึ้นและระบบ OOM (หน่วยความจำล้น) จะถูกทริกเกอร์หรือติดขัดโดยตรง
แบนด์วิดท์เครือข่าย (NetworkOut / NetworkIn): สะท้อนถึงแรงกดดันในการรับส่งข้อมูลเมื่อแบนด์วิดท์การส่งออกเต็ม (ตัวอย่างเช่นคุณซื้อแบนด์วิดท์5Mbps และวิ่งไปที่4.9Mbps) เซิร์ฟเวอร์จะสูญเสียแพ็กเก็ตและความล่าช้าของเครือข่ายอย่างรุนแรงและผู้ใช้ภายนอกดูเหมือนจะ "ไม่สามารถเปิดเว็บไซต์ได้" หรือ "อินเทอร์เฟซหมดเวลา"
จับตาดูตัวบ่งชี้ทั้งสองนี้อย่างใกล้ชิดสามารถเตือนความล้มเหลวของโครงสร้างพื้นฐานเซิร์ฟเวอร์ได้มากกว่า90% ล่วงหน้า
2.การเตรียมการ: "โครงสร้างพื้นฐาน" ของการแจ้งเตือน
ก่อนที่จะเข้าสู่กฎการกำหนดค่าคอนโซลการตรวจสอบระบบคลาวด์เราจำเป็นต้องสร้าง "ช่องทางการแจ้งเตือน" ก่อนหากสัญญาณเตือนถูกทริกเกอร์แต่ไม่มีผู้รับที่ถูกต้องไม่ว่ากฎจะสมบูรณ์แบบแค่ไหนก็ยังเป็นการตกแต่ง
1.ยืนยันสถานะปลั๊กอินการตรวจสอบเมฆ
ลงชื่อเข้าใช้ Alibaba Cloud Console และป้อน
การตรวจสอบระบบคลาวด์-> การตรวจสอบโฮสต์
.ตรวจสอบให้แน่ใจว่าอินสแตนซ์ ECS ของคุณ
อาร์กัสเอเจนต์
สถานะปลั๊กอินจะแสดงเป็น
“กำลังทำงาน”
.เฉพาะเมื่อปลั๊กอินเป็นปกติการตรวจสอบระบบคลาวด์สามารถรับข้อมูลดัชนีที่ละเอียดกว่าภายในระบบได้
2.กำหนดค่าการเตือนผู้ติดต่อและกลุ่มติดต่อ
คลิกที่แถบนำทางด้านซ้าย
"บริการปลุก"-> "ติดต่อปลุก"
:
สร้างผู้ติดต่อ: กรอกหมายเลขโทรศัพท์มือถือและที่อยู่อีเมลของเจ้าหน้าที่ปฏิบัติการและบำรุงรักษาหรือนักพัฒนาและผูก WebHook หรือ Feishu/Enterprise WeChat Robot
.
สร้างกลุ่มผู้ติดต่อ: ดึงผู้ติดต่อที่เกี่ยวข้องเข้าสู่กลุ่มเดียวกัน (เช่น "กลุ่มปฏิบัติการและบำรุงรักษาหลัก" หรือ "กลุ่มบุคลากรที่ปฏิบัติหน้าที่")
พูดคุยเกี่ยวกับประสบการณ์: ขอแนะนำอย่างยิ่งให้เข้าถึงหุ่นยนต์ Dingding/Feishu Group เมื่อเทียบกับอีเมลแบบเดิม (ง่ายต่อการวางสาย) และข้อความ (ง่ายต่อการถูกขัดขวางโดยการคุกคาม) หุ่นยนต์กลุ่มจะตอบสนองได้เร็วที่สุดด้วยฟังก์ชัน @ all-on ในกรณีฉุกเฉิน
3.แบบฝึกหัดภาคปฏิบัติ: กำหนดค่า CPU และกฎการเตือนแบนด์วิดท์ทีละขั้นตอน
หลังจากการเตรียมการเสร็จสิ้นเราได้เข้าสู่กระบวนการสร้างกฎการเตือนภัยอย่างเป็นทางการ
1. เข้าสู่หน้าสร้างกฎการแจ้งเตือน: นำทางในคอนโซล
ลงชื่อเข้าใช้คอนโซล Alibaba Cloud ป้อน "Cloud Monitoring" ในแถบค้นหาด้านบนและป้อนในแถบเมนูด้านซ้ายให้เปิดรายการตามลำดับ
บริการเตือนภัย
->
กฎการเตือนภัย
คลิกที่หน้า
สร้างกฎการแจ้งเตือน
ปุ่ม
2.เลือกทรัพยากรและผลิตภัณฑ์ที่เกี่ยวข้อง: ค้นหาเป้าหมายการตรวจสอบ
ประเภทสินค้า: เลือก ECS เซิร์ฟเวอร์คลาวด์ (หากเป็นแบนด์วิดท์ที่ใช้ร่วมกันหรือ SLB คุณสามารถเลือกผลิตภัณฑ์ที่เกี่ยวข้องได้)
ช่วงทรัพยากร: ขอแนะนำให้เลือกอินสแตนซ์เริ่มต้นและตรวจสอบเซิร์ฟเวอร์หลักที่ต้องตรวจสอบหากมีเซิร์ฟเวอร์จำนวนมากการจัดการแบบรวมสามารถดำเนินการได้ตาม "การจัดกลุ่มแอปพลิเคชัน"
3.ตั้งค่ากฎการแจ้งเตือนการใช้งาน CPU: ตัวบ่งชี้การคำนวณหลัก
ในแผง "เพิ่มกฎ" ให้เพิ่มตัวบ่งชี้การตรวจสอบครั้งแรก:
ตัวบ่งชี้การตรวจสอบ: เลือก (ECS) การใช้งาน CPU (cpu_total)
การกำหนดค่าเกณฑ์และระดับ: ฉุกเฉิน (Critical): 3รอบติดต่อกัน (ค่าเริ่มต้น1นาที), การใช้งาน CPU $ \ ge 90 \ % $ คำเตือน (Warn): การใช้งาน CPU $ \ ge 80 \ % $3รอบติดต่อกัน
การเลือกช่อง: ตรวจสอบการโทร + SMS + DingTalk ในระดับฉุกเฉินตรวจสอบอีเมล + DingTalk ในระดับคำเตือน
4.ตั้งค่ากฎการแจ้งเตือนแบนด์วิดท์เครือข่าย: ดัชนีปริมาณงานเครือข่าย
ดำเนินการต่อคลิก "เพิ่มกฎ" เพื่อกำหนดค่าดัชนีที่เกี่ยวข้องกับแบนด์วิดท์เครือข่าย:
ตัวบ่งชี้การตรวจสอบ: เลือก (ECS) แบนด์วิดท์การไหลออกของเครือข่ายสาธารณะ (IntranetOut หรือ InternetOut ขึ้นอยู่กับว่าธุรกิจไปที่เครือข่ายสาธารณะหรืออินทราเน็ต)
ทักษะการตั้งค่าเกณฑ์: สัญญาณเตือนแบนด์วิดท์ไม่สามารถกำหนดสัดส่วนแบบสุ่มสี่สุ่มห้าได้แต่ต้องรวมกับการกำหนดค่า ECS จริงของคุณตัวอย่างเช่นหากขีดจำกัดสูงสุดของแบนด์วิดท์เครือข่ายสาธารณะที่คุณซื้อคือ10 Mbps สายเตือนสามารถตั้งค่าเป็น: ระดับคำเตือน: อัตราการไหลออก $ \ ge 8 \ text{ Mbps}$ (นั่นคือ $80 \ % $ ถึงขีดจำกัดสูงสุด) ระดับฉุกเฉิน: อัตราการไหลออก $ \ ge 9.5 \ text{ Mbps}$ (เร็วๆนี้)
5.การแจ้งเตือนการกำหนดค่าจะถูกส่งและเวลาที่มีผลบังคับใช้: เสร็จสิ้นการสร้างกฎ.
กลุ่มติดต่อปลุก: ตรวจสอบ "กลุ่มปฏิบัติการหลักและการบำรุงรักษา" ที่สร้างไว้ก่อนหน้านี้
การตั้งค่าป้องกันการรบกวน: กำหนดเวลาที่มีผลบังคับใช้ของกฎ (เช่นมีผลตลอด24ชั่วโมง)
การกำหนดค่าขั้นสูง: ตั้งค่าความถี่ในการเตือนซ้ำเป็น "5นาที/ครั้ง" หรือ "15นาที/ครั้ง" เพื่อหลีกเลี่ยงผลกระทบของพายุสัญญาณเตือน
คลิกยืนยันหลังจากยืนยัน
การสร้างจะเสร็จสมบูรณ์
ประการที่สี่ตรรกะการตรวจสอบและการแก้ไขปัญหาหลังจากทริกเกอร์สัญญาณเตือน
หลังจากตั้งกฎแล้วจะตรวจสอบได้อย่างไรว่ากระบวนการเตือนภัยชุดนี้มีประสิทธิภาพและราบรื่น?
1.วิธีการตรวจสอบ (วิธีการทดสอบทริกเกอร์?)
คุณสามารถใช้เครื่องมือที่มาพร้อมกับระบบ Linux สำหรับการทดสอบความเครียดแบบอะนาล็อก:
การทดสอบความเครียดของ CPU: เรียกใช้บรรทัดคำสั่ง stress-cpu 2-timeout 300s ในสภาพแวดล้อมการทดสอบและเติม CPU ด้วยตนเอง
การทดสอบความดันแบนด์วิดท์: ใช้ iperf3หรือดาวน์โหลดไฟล์ขนาดใหญ่จากภายในเซิร์ฟเวอร์ไปยังเครือข่ายภายนอกเพื่อเพิ่มแบนด์วิดท์ทิศทาง
มาตรฐานการตรวจสอบ: สังเกตกลุ่ม DingTalk หรือข้อความโทรศัพท์มือถือว่าคุณสามารถรับการแจ้งเตือนจาก Alibaba Cloud ได้อย่างถูกต้องภายใน3-5นาทีหรือไม่
การทดสอบในสภาพแวดล้อมการผลิตเพื่อป้องกันคำเตือน
ห้ามทดสอบความเครียดโดยตรงในสภาพแวดล้อมการผลิตโดยเด็ดขาด! โปรดเลือกเซิร์ฟเวอร์ทดสอบหรือสร้างอินสแตนซ์ชั่วคราวใหม่สำหรับการตรวจสอบลิงก์เตือน
2.3ขั้นตอนในการประมวลผลทองคำหลังจากสัญญาณเตือนถูกเรียก
เมื่อได้รับการแจ้งเตือน CPU หรือแบนด์วิดท์อย่ารีสตาร์ทเซิร์ฟเวอร์แบบสุ่มสี่สุ่มห้าขอแนะนำให้ใช้เส้นทางการตรวจสอบทีละขั้นตอนต่อไปนี้:
[ได้รับการแจ้งเตือน]
│
├───> สัญญาณเตือน CPU ──> เข้าสู่ระบบเซิร์ฟเวอร์ ──> เรียกใช้ 'top' / 'htop' ──> ค้นหา PID ที่ใช้งานสูง ──> ตรวจสอบบันทึกกระบวนการหรือฆ่าเธรดที่ผิดปกติ
│
└ ──> การแจ้งเตือนแบนด์วิดท์ ──> ล็อกอินเข้าสู่คอนโซล ──> ดูเส้นโค้งการตรวจสอบการจราจร ──> เรียกใช้ 'iftop' / 'nethogs' ──> ระบุ IP การเชื่อมต่อที่ผิดปกติ ──> กำหนดค่า Security Group เพื่อบล็อกหรือขยายแบนด์วิดท์
5.ความคิดเพิ่มเติมเกี่ยวกับการดำเนินงานและการบำรุงรักษาขององค์กร: การจัดการบัญชีและทรัพยากรที่เป็นมาตรฐาน
ในกระบวนการสร้างระบบเฝ้าระวังและเตือนภัยที่สมบูรณ์นอกเหนือจากการกำหนดค่าทางเทคนิคแล้วหลายบริษัทมักเพิกเฉย
ความปลอดภัยของสินทรัพย์พื้นฐานและข้อกำหนดบัญชีสำหรับโครงสร้างพื้นฐาน
.
ด้วยการขยายขนาดธุรกิจหลายทีมจะต้องเผชิญกับความต้องการในการจัดการหลายบัญชีการตั้งถิ่นฐานโครงการอิสระหรือการขยายธุรกิจในต่างประเทศในกระบวนการนี้เกี่ยวข้องกับ
การซื้อบัญชี Alibaba Cloud
, การตรวจสอบชื่อจริงของบัญชีและการแยกอำนาจมีความสำคัญอย่างยิ่ง
หลักการลดการอนุญาต: อย่ากำหนดอำนาจสูงสุดของ Administration Access ให้กับวิศวกรปฏิบัติการและการบำรุงรักษาหรือบริการตรวจสอบโดยตรงขอแนะนำให้สร้างบทบาทเฉพาะผ่าน RAM (Access Control) และให้สิทธิ์การอ่านและเขียนสำหรับการตรวจสอบระบบคลาวด์ (CMS) เท่านั้น (เช่น AliyunCloudMonitorFullAccess)
การสร้างสถาปัตยกรรมบัญชี: สำหรับบริษัทที่ต้องการการแยกสภาพแวดล้อมหลายชุด (การพัฒนาการทดสอบการผลิต) การซื้อบัญชี Alibaba Cloud และการวางแผนสถาปัตยกรรมที่เหมาะสมสามารถแยกความเสี่ยงจากแหล่งที่มาได้การเตือนสภาพแวดล้อมการผลิตเชื่อมต่อโดยตรงกับทีมปฏิบัติการหลักและการบำรุงรักษาและสภาพแวดล้อมการพัฒนา
สัญญาณเตือนชายแดนจะถูกแจกจ่ายให้กับบุคลากรด้านการวิจัยและพัฒนาที่เฉพาะเจาะจงเพื่อไม่ให้มีการแทรกแซงซึ่งกันและกันและสิทธิและความรับผิดชอบมีความชัดเจน
การจัดการวงจรชีวิต: ไม่ว่าจะเป็นการต่ออายุ ECS ของเซิร์ฟเวอร์คลาวด์หรือวิวัฒนาการของกฎการตรวจสอบและการเตือนภัยจะต้องเชื่อมโยงอย่างมากกับวงจรชีวิตทรัพยากรภายใต้บัญชีหากเซิร์ฟเวอร์ถูกปล่อยออกมากฎการเตือนที่เกี่ยวข้องควรได้รับการทำความสะอาดพร้อมกันเพื่อหลีกเลี่ยงขยะการเตือนที่ไม่ถูกต้อง
บทสรุป
การเตือนแบบเรียลไทม์ไม่ได้มีไว้เพื่อเพิ่มภาระงานในการดำเนินการและการบำรุงรักษาตรงกันข้ามคือการ "แบ่งเบาภาระ" ให้กับวิศวกร
ชุดซีพียูระบบคลาวด์ของอาลีบาบาและระบบเตือนภัยแบนด์วิดท์ที่มีการออกแบบที่เหมาะสมและเกณฑ์ทางวิทยาศาสตร์เปรียบเสมือน "เจ้าหน้าที่รักษาความปลอดภัย" ที่ติดตั้งเซิร์ฟเวอร์เพื่อลาดตระเวนตลอด24ชั่วโมงเมื่อตัวบ่งชี้เป็นปกติคุณสามารถนอนหลับได้อย่างสบายใจเมื่อความเสี่ยงเริ่มปรากฏขึ้นระบบจะส่งข้อมูลที่ถูกต้องที่สุดถึงคุณในครั้งแรกเพื่อช่วยให้คุณยับยั้งความผิดพลาดในเปล
ก่อนเลิกงานคืนนี้คุณอาจใช้เวลา10นาทีในการเข้าสู่ระบบคอนโซล Alibaba Cloud เพื่อตรวจสอบว่ากฎการเตือนเซิร์ฟเวอร์ของคุณถูกต้องหรือไม่?

