การตั้งค่า Amazon Cloudwatch เพื่อรับการแจ้งเตือนเมื่อเซิร์ฟเวอร์ของคุณไม่ทำงาน


13

ฉันมีอินสแตนซ์ที่ทำงานบน Amazon EC2 ที่ฉันกลายเป็นเว็บเซิร์ฟเวอร์

ตอนนี้ฉันดู cloudwatch แล้ว แต่ฉันไม่รู้ว่ามันเป็นเครื่องมือที่ถูกต้องสำหรับงานหรือไม่ โดยทั่วไปฉันต้องการได้รับแจ้งเมื่อเซิร์ฟเวอร์ล่มไม่ว่าด้วยเหตุผลใด

บางทีเซิร์ฟเวอร์อาจถูกแฮ็กหรือเซิร์ฟเวอร์ปิดตัวด้วยเหตุผลใดก็ตามฉันต้องการได้รับการแจ้งเตือน

ฉันเปิดใช้งาน clouwatch และพยายามตั้งค่าการแจ้งเตือน แต่ฉันเห็นเฉพาะสิ่งต่าง ๆ เช่นการใช้งานเครือข่ายเข้า - ออกหรือการใช้ cpu ซึ่งเป็นเมทริกซ์ d ตอนนี้ฉันไม่ทราบว่าสิ่งเหล่านี้จะทำเคล็ดลับ


1
ชำระเงิน cloudkick ฉันรู้ว่าเราไม่ควรเผยแพร่ความคิดเห็น แต่ cloudkick เป็นโซลูชันการติดตามที่ฉันโปรดปราน pingdom ค่อนข้างไร้ประโยชน์เนื่องจากไซต์ของคุณสามารถ pingable (apache / nginx) แต่พร็อกซีของคุณเกินไปการเข้าร่วม php / java / ruby ​​อาจไม่ทำงาน การกด URL จริงด้วย cloudkick ทุก ๆ 3 นาทีและตรวจสอบว่ามีข้อความที่คุณระบุหรือความสำเร็จ 2xx จะมีประโยชน์มากกว่าและมั่นใจได้ว่าสแต็กทั้งหมดทำงานได้ดี ฉันมีการติดตั้งจอมอนิเตอร์สำหรับ loadaverage, การใช้งานกล้อง, การเชื่อมต่อตัวแทน (ออฟไลน์เซิร์ฟเวอร์หรือการเชื่อมต่อลดลง) http 2xx ความสำเร็จบนหน้า ฯลฯ
iainlbc

คุณทำคะแนนได้ดีที่นี่ หาก php เท่านั้นไม่ทำงานคุณจะยังคงได้รับการตอบกลับ 200 ครั้ง ลิงค์ที่คุณระบุเป็นทางเลือกที่ดี ฉันจะดูมันเมื่อฉันตัดสินใจครั้งสุดท้าย
Saif Bechan

@iainlbc คุณสามารถตั้งค่า Pingdom ให้กด URL จริงและตรวจสอบข้อความที่ต้องการ
ceejayoz

คำตอบ:


11

คำแนะนำอย่างหนึ่งคือการตรวจสอบตัวชี้วัดที่ควรมีค่าตัวเลขเสมอ - เช่นการใช้งาน CPU และเปิดสัญญาณเตือนเมื่อสถานะตัวชี้วัดเป็น 'ข้อมูลไม่เพียงพอ' คุณสามารถใช้ SNS ของ Amazon เพื่อแจ้งให้คุณทราบ

หรือคุณสามารถตั้งค่าตัวชี้วัดที่กำหนดเองซึ่งคืนค่าสถานะไบนารีสำหรับบริการเฉพาะ (httpd, mysql, ฯลฯ ) และสร้างการแจ้งเตือนเมื่อใดก็ได้ที่อ่าน 0 เหล่านี้วิธีการนี้ให้ความเป็นไปได้ของรายละเอียดปลีกย่อยมาก - รวมเข้ากับ 'ข้อมูลไม่เพียงพอ 'เพื่อครอบคลุมทุกกรณี

คุณอาจประสบความสำเร็จมากขึ้นในการใช้สิ่งที่ตรวจสอบไซต์ของคุณ (เช่น Pingdom, UptimeRobot และอื่น ๆ )


ฉันได้ดูบริการอย่าง pingdom และฉันจะเปิดใช้งานพวกเขาอย่างแน่นอน นอกจากนี้ฉันยังคิดที่จะดูซีพียู แต่ฉันคิดว่าจะเกิดอะไรขึ้นเมื่อเว็บเซิร์ฟเวอร์ถูกแฮ็ก มีการทดสอบ httpd, mysql และอื่น ๆ จะช่วยได้อย่างแน่นอน คุณสามารถให้คำแนะนำเกี่ยวกับวิธีการเปิดใช้งานการวัดสถานะไบนารีนี้ได้ไหม
Saif Bechan

สั้น ๆ : กำหนดวิธีรับสถานะบริการที่น่าสนใจ (เช่นps | grepสำหรับ pid / name ตรวจสอบพอร์ตที่ใช้งานฯลฯ ) - เช่นสคริปต์จ้องจับผิด ปรับเปลี่ยนสคริปต์ดังกล่าวเพื่อเรียก Cloudwatch API (PutMetricData) ที่ส่งผ่าน 0 (สำหรับลง) หรือ 1 (ขึ้นไป) - ควรใช้ SDK ที่มีอยู่เพื่อจุดประสงค์นี้ (เช่น Ruby, PHP, ฯลฯ ); เวอร์ชันบรรทัดคำสั่ง mon-put-data ช้ากว่า เรียกใช้ทั้งหมดด้วย cron
cyberx86

1
ตกลงว่าฟังดูซับซ้อนเล็กน้อย ฉันคิดว่าบริการอย่าง uptimerobot น่าจะเป็นทางเลือกที่ดีกว่าสำหรับฉันเป็นส่วนตัว ขอบคุณสำหรับความช่วยเหลือ
Saif Bechan

3

คุณสามารถใช้ OpsGenie ( http://www.opsgenie.com ) เพื่อส่งการแจ้งเตือนที่หลากหลายสำหรับ CloudWatch Currenly CloudWatch มีชุดการแจ้งเตือนที่ จำกัด รวมถึงอีเมลและ SMS ผ่านกลไก SNS

คุณสามารถกำหนดค่า CloudWatch เพื่อโทร OpsGenie บริการเว็บ API รับคนที่เหมาะสมได้รับการแจ้งเตือนอย่างรวดเร็วผ่านการแจ้งเตือนไปยังแอพ iPhone / Android, SMS, การโทรด้วยเสียงและอื่น ๆ ตามการตั้งค่าของผู้รับ

โปรดดูที่โพสต์บล็อกต่อไปนี้สำหรับข้อมูลรายละเอียด:

http://www.opsgenie.com/blog/2012/09/04/aws-cloudwatch-alarms-on-your-mobile-with-opsgenie.html


2

คุณสามารถสร้างการเตือนภัยใน Cloudwatch และตั้งค่าการเตือนเพื่อแจ้งให้คุณทราบเมื่อเข้าสู่สถานะ "ข้อมูลไม่เพียงพอ" เมทริกที่มีอยู่แล้วส่วนใหญ่มาจาก VM Host ซึ่งไม่มีความคิดที่แท้จริงเกี่ยวกับสิ่งที่เกิดขึ้นภายในเครื่องของคุณ

ในตอนแรกฉันขอแนะนำให้ติดตั้งเครื่องมือ Amazon ในอินสแตนซ์ของคุณและตั้งค่าสคริปต์เพื่อรายงานบางสิ่ง (สิ่งใด: การใช้ CPU, อะไรก็ตาม) และการเตือนถ้าตัวชี้วัดนั้นหยุดส่งข้อมูล (ดังนั้นตัวชี้วัดจะเข้าสู่สถานะข้อมูลไม่เพียงพอ )

นี่เป็นเพียงขั้นต่ำเปล่า แต่ควรเป็นจุดเริ่มต้นที่ดี

ดูส่วนสคริปต์การตรวจสอบของคู่มือผู้พัฒนา Cloudwatch: http://docs.amazonwebservices.com/AmazonCloudWatch/latest/DeveloperGuide/mon-scripts.html


ยอดเยี่ยมสิ่งที่ฉันกำลังมองหา
GivP

2

คุณสามารถใช้เส้นทาง 53 และ "การตรวจสุขภาพ" ได้ ด้วยวิธีนี้คุณสามารถส่งการแจ้งเตือน SNS และเปลี่ยนเส้นทางผู้ใช้ของคุณไปยังเว็บไซต์รองอื่นหรือหน้าจอข้อผิดพลาด ฉันคิดว่านี่เป็นวิธีแก้ปัญหาที่ดีกว่าสำหรับคุณแล้วใน Cloudwatch


2

คุณสามารถดำเนินการตรวจสอบสถานะ EC2 ทำจากแผงควบคุม EC2 ไปที่อินสแตนซ์เลือกอินสแตนซ์ของคุณเลือกแท็บการตรวจสอบสถานะ (ถัดจากคำอธิบายอินสแตนซ์) คลิกที่สร้างการแจ้งเตือนการตรวจสอบสถานะเริ่มต้น "การตรวจสอบสถานะล้มเหลว (ใด ๆ )" ควรจะดี ฉันมักจะตั้งค่าช่วงเวลาให้มากกว่าหนึ่งเสมอดังนั้นฉันจึงไม่ต้องกังวลกับปัญหาชั่วคราว

นอกจากนี้ยังเป็นไปได้ที่จะตั้ง EC2 เพื่อกู้คืนอินสแตนซ์ของคุณโดยอัตโนมัติหากมีปัญหาเกิดขึ้น

ฉันยังแนะนำระบบการตรวจสอบรอง ใบ้นั้นดีสำหรับอันนี้ ฉันตั้งค่าโปรแกรมอรรถประโยชน์ linux mon แล้วชี้ไปที่เว็บเซิร์ฟเวอร์ของฉันจากโฮสต์อื่น หากไม่ได้รับรหัสตอบ 200 รหัสสองครั้งติดต่อกันฉันจะได้รับอีเมล


1

หากคุณต้องการตรวจสอบจุดปลาย HTTP เช่น API หรือเว็บไซต์ของคุณให้ตรวจสอบการโพสต์บล็อกของฉันเกี่ยวกับวิธีการบรรลุเป้าหมายด้วยการตรวจสอบสุขภาพ 53 ของเส้นทาง (แม้ว่าคุณจะไม่ใช้ Route 53 สำหรับ DNS):

http://eladnava.com/monitoring-http-health-email-alerts-aws/

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.