Date: ธันวาคม 11, 2020
ใช้ Datadog สำหรับ Amazon EC2 Monitoring หรือไม่ จับคู่กับ SIOS AppKeeper สำหรับการแก้ไขอัตโนมัติ
คุณเคยคิดกับตัวเองไหมว่า“ คงจะดีถ้า Datadog สามารถตรวจสอบบริการ Amazon EC2 ของเราและรีสตาร์ทโดยอัตโนมัติเมื่อตรวจพบความล้มเหลว” ฉันคิดแบบเดียวกันและตัดสินใจที่จะลองด้วยตัวเอง
SIOS AppKeeper จะตรวจสอบอินสแตนซ์ Amazon EC2 โดยอัตโนมัติสำหรับความล้มเหลวและรีสตาร์ทอินสแตนซ์โดยอัตโนมัติหรือแม้แต่รีบูตบริการเมื่อตรวจพบความล้มเหลวฉันคิดกับตัวเองว่า“ จะเป็นอย่างไรหากเรารวมความสามารถในการตรวจสอบของ Datadog เข้ากับความสามารถในการแก้ไขอัตโนมัติของ AppKeeper”
มันได้ผลและนี่คือวิธีที่ฉันทำ
หากคุณใช้ Datadog อยู่แล้วและสนใจที่จะทดลองใช้ด้วยตัวคุณเองโปรดลงทะเบียนที่ท้ายบทความนี้เพื่อเข้าถึง API ของเรา
นี่คือขั้นตอนที่ฉันใช้ในการตั้งค่า AppKeeper เพื่อรับการแจ้งเตือนจาก Datadog และรีสตาร์ทเว็บเซิร์ฟเวอร์บน Amazon EC2 เมื่อตรวจพบการหยุดทำงาน
เพื่อให้การทดสอบนี้ประสบความสำเร็จเรามีบัญชี Datadog บัญชี AppKeeper และเว็บเซิร์ฟเวอร์ NGINX ที่ทำงานบน Amazon EC2 (ใช้ Linux 2) อยู่แล้ว
วิธีรวม Datadog เข้ากับ AppKeeper เพื่อให้การแก้ไขอัตโนมัติ
ขั้นตอนที่หนึ่ง: รับโทเค็นรีสตาร์ท API จาก AppKeeper
ขอโทเค็น API สำหรับการรวม Datadog จากแบบฟอร์มนี้:
https://mk.sios.jp/BC_AppKeeper_Datadog_api_application
หากคุณขอจากแบบฟอร์มโทเค็นจะถูกส่งไปยังที่อยู่อีเมลที่คุณให้ไว้
ขั้นตอนที่สอง: สร้างผู้เช่าใน AppKeeper
ขั้นตอนต่อไปคือการลงทะเบียนบัญชี AWS ซึ่งอินสแตนซ์ที่ตรวจสอบอยู่ใน AppKeeper (AppKeeper อ้างถึงบัญชี AWS ที่ลงทะเบียนเป็น "ผู้เช่า")
ขั้นตอนที่สาม: สร้าง IAM Role ใน AWS
จากนั้นฉันก็สร้าง IAM Role ใน AWS (คุณต้องใช้สิ่งนี้เพื่อตั้งค่าบัญชี AppKeeper ของคุณ)คำแนะนำหากคุณไม่คุ้นเคยกับกระบวนการนี้
ขั้นตอนที่สี่: เพิ่มผู้เช่าใน AppKeeper
ขั้นตอนต่อไปคือการเพิ่ม“ ผู้เช่า” ใน AppKeeper (AppKeeper ถือว่าบัญชี AWS เป็น“ ผู้เช่า”)นี่คือลิงค์ไปยังคำแนะนำโดยละเอียดเกี่ยวกับการดำเนินการนี้
ขั้นตอนที่ห้า: ตั้งค่า Synthetics Test ใน Datadog
จากนั้นฉันต้องกำหนดค่าการตรวจสอบโครงร่างของ Datadog สำหรับเซิร์ฟเวอร์ Nginx (อินสแตนซ์ EC2) ที่เราต้องการตรวจสอบวิธีดำเนินการมีดังนี้
เปิดแดชบอร์ด Datadog และเลือก UX Monitoring> Synthetic Tests จากเมนู
คลิกปุ[New Test]่มที่มุมขวาบนและเลือกเพื่อสร[New API Test]้างกรณีการตรวจสอบโครงร่าง
ป้อนข้อมูลต่อไปนี้ในแบบฟอร์มเพื่อสร้างกรณีการตรวจสอบโครงร่าง
- เลือกประเภทคำขอ
เลือก“ HTTP” - กำหนดคำขอ:
ตั้งค่าต่อไปนี้
URL: รับ http: // {{{ที่อยู่ IP EC2}}
ชื่อ: AppKeeper Datadog Integration Test (ชื่อใดก็ได้)
สถานที่: โตเกียว
3. ระบุความถี่ในการทดสอบ
ไม่มีการเปลี่ยนแปลง
4. กำหนดการยืนยัน
คลิกที่ "การยืนยันใหม่" และตั้งค่าต่อไปนี้
เมื่อไหร่ [status code][is]:[200]
5. กำหนดเงื่อนไขการแจ้งเตือน
ไม่มีการเปลี่ยนแปลง
6.แจ้งทีมของคุณ
ไม่มีการเปลี่ยนแปลง
ขั้นตอนที่หก: เรียกใช้การทดสอบ Synthetics ใน Datadog
เมื่ออินพุตด้านบนเสร็จสมบูรณ์ให้กด "สร้างการทดสอบ" เพื่อสร้างกรณีทดสอบสำหรับการมอนิเตอร์ภายนอก
ผลลัพธ์จะปรากฏให้เห็นและเราจะเห็นว่าเว็บเซิร์ฟเวอร์ทำงานอย่างถูกต้องในส่วน“ ผลการทดสอบ”
นั่นคือทั้งหมดที่ต้องทำเพื่อกำหนดค่าการตรวจสอบ Synthetics โดยใช้ Datadog
ขั้นตอนที่เจ็ด: ตั้งค่า AppKeeper เพื่อรับการแจ้งเตือน Synthetics
ต่อไปฉันต้องตั้ง AppKeeper เป็นปลายทางการแจ้งเตือนจากเมนู Datadog ไปที่ Integrations และเลือกแท็บ Integrations
ในช่องค้นหาป้อน“ Webhooks” เพื่อค้นหาการผสานรวม Webhooks
คลิก“ พร้อมใช้งาน” เพื่อเปิดใช้งานการรวม Webhooks ในบัญชี Datadog ของคุณ (เมื่อเปิดใช้งานแล้วจะปรากฏในคอลัมน์“ ติดตั้งแล้ว”)
คลิกที่“ กำหนดค่า” เพื่อเปิดหน้าการกำหนดค่าการรวม Webhooks
ในคอลัมน์ "Webhooks" ที่ด้านล่างของหน้าคลิก "ใหม่ +" เพื่อสร้างปลายทางการแจ้งเตือน Webhooks ใหม่ สำหรับพารามิเตอร์ให้ป้อนข้อมูลต่อไปนี้
ชื่อ: ชื่อของการรวม (ชื่อใดก็ได้)
URL: https://api.appkeeper.sios.com/v2/integration/ {{AWS account ID}} / actions / recover
น้ำหนักบรรทุก:
{
“ instanceId”:“ {{EC2 Instance ID}}”, “ ชื่อ”:“ nginx” } |
ส่วนหัวที่กำหนดเอง: ทำเครื่องหมายในช่องและป้อนข้อมูลต่อไปนี้
{ “ ประเภทเนื้อหา”:“ application / json”, “ ยอมรับ”:“ application / json”, “ appkeeper-integration-token”:“ {{รับโทเค็นการรวม AppKeeper ภายนอกโทเค็นที่ได้รับใน}}” } |
เมื่อเสร็จแล้วให้กด“ บันทึก”
ขั้นตอนที่แปด: การเชื่อมต่อ AppKeeper กับการทดสอบ Synthetics
ต่อไปฉันต้องกำหนดค่า AppKeeper (การรวม Webhooks ที่ลงทะเบียนไว้) เพื่อเรียกใช้เมื่อมีการแจ้งเตือนการมอนิเตอร์ Synthetics เกิดขึ้น
เปิดกรณีทดสอบที่คุณตั้งค่าไว้ใน“ การกำหนดค่า Synthetic Monitoring ด้วย Datadog” จาก UX Monitoring> Synthetic Tests ในเมนู
เลือก“ แก้ไขรายละเอียดการทดสอบ” จากกระปุกเกียร์ด้านขวาบนและป้อนค่าต่อไปนี้ในช่อง“ 5. แจ้งทีมของคุณ” เพื่อบันทึกการเปลี่ยนแปลง
@webhook – {{ชื่อการรวม Webhook ใน Datadog}} |
※คุณสามารถตั้งค่า“ แจ้งเตือนอีกครั้งหากจอภาพไม่ได้รับการแก้ไข”คุณสามารถลองใหม่ได้หาก AppKeeper ไม่สามารถกู้คืนได้ในครั้งแรกไม่จำเป็นสำหรับวัตถุประสงค์ในการทดสอบ แต่เราขอแนะนำให้คุณตั้งค่า[10 minutes]เป็น (ช่วงต่ำสุด)
การตั้งค่าเสร็จสมบูรณ์แล้ว
ขั้นตอนที่เก้า: ยืนยันการรวมโดยเรียกใช้การทดสอบอีกครั้ง
จากนั้นฉันยืนยันว่า AppKeeper จะคืนค่าเว็บเซิร์ฟเวอร์หาก Datadog ตรวจพบว่าไม่สามารถใช้งานได้
เปิดกรณีทดสอบการตรวจสอบ Synthetics ที่คุณเพิ่งตั้งค่าจาก UX Monitoring> Synthetic Tests ใน Datadog
คลิก "ดำเนินการทดสอบต่อ" ที่มุมขวาบนและเปิดการตรวจสอบ Synthetics
ตอนนี้ Datadog จะทำการตรวจสอบ Synthetics ในช่วงเวลาปกติ
ผลการทดสอบแสดงว่าเข้าถึงเซิร์ฟเวอร์ได้สำเร็จ
ต่อไปฉันสร้างความล้มเหลวของเว็บเซิร์ฟเวอร์หลอกเพื่อทดสอบการแก้ไขอัตโนมัติของ AppKeeper
เนื่องจากเป็นเรื่องยากที่จะทำให้เกิดความล้มเหลวอย่างแท้จริงฉันจึงหยุดบริการและสร้างสถานการณ์ที่คุณไม่สามารถดูหน้าเว็บได้ในการทำเช่นนี้ฉันเชื่อมต่อกับอินสแตนซ์ EC2 ที่ติดตั้งเซิร์ฟเวอร์ Nginx โดยใช้ SSH และหยุด Nginx
sudo systemctl หยุด nginx |
หลังจากรอไม่นาน Datadog ตรวจพบว่าเว็บเซิร์ฟเวอร์ไม่สามารถเข้าถึงได้อีกต่อไป
หน้าการทดสอบสังเคราะห์ใน Datadog ยังแสดงว่ากรณีทดสอบล้มเหลว
หากกรณีทดสอบล้มเหลว Datadog จะแจ้ง AppKeeper ว่าการมอนิเตอร์ Synthetics ล้มเหลว
เมื่อ AppKeeper ได้รับการแจ้งเตือนมันจะพยายามรีสตาร์ท Nginx โดยอัตโนมัติ
ดังนั้นหากคุณรอสักครู่คุณจะเห็นว่าการตรวจสอบ Synthetics ของ Datadog จะผ่านไปอีกครั้ง
นอกจากนี้หากคุณลงชื่อเข้าใช้แดชบอร์ด AppKeeper คุณจะเห็นว่าได้ดำเนินการกู้คืนแล้ว
–
ในแบบฝึกหัดนี้ฉันใช้เว็บเซิร์ฟเวอร์ (Nginx) เป็นตัวอย่างในการตรวจจับความล้มเหลวของ Datadog โดยอัตโนมัติและเรียกคืนบริการด้วย AppKeeper
ระบบอัตโนมัติที่คล้ายกันสามารถทำได้โดยการรวม Datadog กับ EventBridge และ Lambda หรือโดยการสร้างสคริปต์ที่กำหนดเอง
อย่างไรก็ตามหากคุณเพิ่มอินสแตนซ์เป้าหมายบ่อยๆหรือรีสตาร์ทบริการที่หลากหลายต้นทุนและความซับซ้อนในการดูแล EventBridge และ Lambda หรือสคริปต์จะเพิ่มขึ้น
การผสานรวมที่พิสูจน์แล้วของ AppKeeper กับ Datadog และความสะดวกในการเพิ่มอินสแตนซ์เป้าหมายลงในแอปพลิเคชันของคุณทำให้ง่ายต่อการเพิ่มระบบอัตโนมัติให้กับสภาพแวดล้อม DevOps เพื่อลดเวลาหยุดทำงานของคุณ
หากคุณกำลังใช้ Datadog และต้องการทดลองใช้ AppKeeper's Restart API ก่อนอื่นโปรดลงชื่อสมัครทดลองใช้ฟรี 14 วันที่นี่ (คุณสามารถซื้อการสมัครใช้งานเมื่อคุณติดตั้งการทดลองใช้ฟรีแล้ว)จากนั้นคลิกที่นี่เพื่อขอทดลองใช้ฟรี เราจะแนะนำคุณตลอดขั้นตอนและมอบโทเค็นการประเมินให้คุณฟรีเพื่อช่วยคุณในการเริ่มต้น
ขอบคุณ.ฉันหวังว่าคุณจะใช้โอกาสนี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับ SIOS AppKeeper ซึ่งให้การตรวจสอบและกู้คืนแอปพลิเคชันที่ทำงานบน EC2 โดยอัตโนมัติ
– Tatsuya Hirao จากทีมเทคนิค SIOS Technology
ทำซ้ำโดยได้รับอนุญาตจาก SIOS