คุณติดตาม Nagios / Capistrano ได้อย่างไรเมื่อใช้ EC2


11

ฉันใช้ Amazon EC2 สำหรับแอพมือถือของฉัน ขึ้นอยู่กับโหลดของแอปพลิเคชันในเวลาที่กำหนดฉันอาจวางไข่อินสแตนซ์ใหม่แล้วนำลงเมื่อโหลดต่ำเพื่อประหยัดค่าใช้จ่าย

หนึ่งจะติดตามการกำหนดค่า Nagios สำหรับสภาพแวดล้อมแบบไดนามิกได้อย่างไร เมื่อมีข้อตกลงกับฮาร์ดแวร์ที่มีการจัดการไฟล์กำหนดค่าสามารถคาดเดาได้ ในกรณีนี้ Nagios, Capistrano และไฟล์การกำหนดค่าอื่น ๆ จะต้องถูกเพิ่มเข้าไป Capistrano จำเป็นต้องทราบว่าจะติดตั้งบิวด์ใหม่สำหรับเซิร์ฟเวอร์แอพ Nagios จำเป็นต้องรู้เพื่อลบอินสแตนซ์ที่มีอยู่หรือเพิ่มอินสแตนซ์ใหม่สำหรับการตรวจสอบ Nagios จำเป็นต้องทราบด้วยว่าโหนดนั้นถูกลบโดยเจตนาหรือถ้าโฮสต์นั้นล้มเหลวเนื่องจากข้อผิดพลาด

สิ่งนี้ทำกับโลกมหัศจรรย์ของ VPS / อินสแตนซ์ไดนามิกได้อย่างไร

คำตอบ:


9

เราใช้เครื่องมือจัดการการกำหนดค่า (Chef ในกรณีของเรา) ซึ่งเขียนการกำหนดค่า Nagios จากข้อมูลโหนด


1
แน่นอนว่าการใช้ Puppet / Chef นั้นจะมอบให้ แต่เคล็ดลับคือวิธีที่จะทำให้การกำหนดค่าต่อโหนดสามารถจัดการได้ (เช่นไม่ต้องทำซ้ำรายการของโหนดในการกำหนดค่า Puppet ของเซิร์ฟเวอร์ Nagios) และยังทำให้เซิร์ฟเวอร์ Nagios ติดตามโหนดเพิ่ม / ลบ / เปลี่ยน ฉันแตะที่จุดนี้ในคำตอบของฉันด้านล่าง
Amos Shapira

3

เขียนสคริปต์ php ชุดเล็ก ๆ ของฉันที่เขียนการกำหนดค่า nagios ลงในไฟล์ Nagios นั้นง่ายเพราะมันเป็นเพียงไฟล์ข้อความดังนั้นสิ่งที่คุณต้องทำคือสร้างเทมเพลตสำหรับเซิร์ฟเวอร์แต่ละประเภท จากนั้นเมื่อเซิร์ฟเวอร์เริ่มเพิ่มไฟล์โดยใช้แม่แบบ ข้อมูลเดียวที่เปลี่ยนแปลงในไฟล์คือโฮสต์ ip และชื่อ

สำหรับเซิร์ฟเวอร์แบบสแตติกเพิ่มเติมฉันสร้างสคริปต์ที่รันec2-describe-instancesและสร้างไฟล์สำหรับแต่ละอินสแตนซ์ที่ส่งคืน แต่ละอินสแตนซ์ถูกทำเครื่องหมายด้วยแท็ก: จุดประสงค์ = XXXX ดังนั้นฉันจึงรู้ว่าจะใช้เทมเพลตใด

สำหรับกลุ่มการปรับขนาดอัตโนมัติของเราเราตั้งค่าการแจ้งเตือนโดยใช้as-put-notification-configurationคำสั่งที่ส่งข้อความไปยังคิว SQS สคริปต์ PHP ดำเนินการโดย crontab เมื่อสคริปต์รันสคริปต์ตรวจสอบคิวสำหรับเซิร์ฟเวอร์ใหม่ใด ๆ เมื่อใดก็ตามที่พบเซิร์ฟเวอร์ใหม่มันจะสร้างไฟล์ใหม่ สิ่งเดียวกันนี้เกิดขึ้นเมื่อเซิร์ฟเวอร์ถูกลบ อาจจะง่ายกว่าการใช้ Chef หรืออะไรบางอย่างถ้าคุณใช้อยู่แล้ว แต่ถ้าคุณไม่ได้คุณสามารถเขียนบริการ php อย่างง่าย ๆ เช่นฉันในไม่กี่วัน


1

เราใช้Opsviewซึ่งเป็นอีกหนึ่ง nagios + database + rest-api wrapper ฉันไม่รู้ว่านี่เป็นทางออกที่ดีที่สุดสำหรับทุกคน (หรือแม้กระทั่งเรา) แต่มันช่วยให้เราสามารถกำหนดค่าเซิร์ฟเวอร์ Nagios ผ่าน REST API แบบง่ายจากโหนด (หรือโหนดการดูแลระบบอื่น ๆ ) เมื่อมันมาและลบออกจาก การกำหนดค่าเมื่อเสร็จสิ้น ฉันใช้คำจำกัดความของแม่แบบโฮสต์เป็นส่วนหนึ่งของรายการ Puppet ของเซิร์ฟเวอร์ Opsview (/ Nagios) และโฮสต์ที่ถูกตรวจสอบเพิ่งลงทะเบียนกับมันและเข้าร่วมแม่แบบโฮสต์ที่ถูกต้องเป็นส่วนหนึ่งของรายการหุ่นกระบอกของพวกเขา

วิธี "ทั่วไป" ที่มากขึ้นซึ่งควรทำงานกับทุกอย่างที่แม้แต่ Nagios ดั้งเดิมและไฟล์คงที่ก็คือPuppet Stored Configuration - สิ่งนี้ช่วยให้คุณสคริปต์สคริปต์บางอย่างเพื่อกำหนดค่าเครื่องมือใด ๆ ที่คุณต้องการได้ตามที่คุณต้องการ รายการของมัน

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


1

สองวิธี

  • ใช้เทมเพลต Amazon EC2 ที่กำหนดค่าล่วงหน้า

  • การใช้รายการหุ่นกระบอกด้วยเทมเพลตที่แปรปรวน

  • ติดตั้ง VPN ระหว่างเครือข่าย nagios และ amazon VM ของคุณจากนั้น amazon VM ทั้งหมดของคุณจะมี statics IP คุณสามารถตั้งค่า DNS ที่อยู่บนพวกเขาได้ เรามี nagios ที่ทำงานและติดตามอินสแตนซ์ amazon ทั้งหมดของเรา เราไม่จำเป็นต้องมี elastic-ip ด้วยซ้ำ เราใช้ openvpn สำหรับ VPN

  • สร้าง Nagios ที่ฟังคำสั่งภายนอกและอัปเดตการกำหนดค่าตามความเหมาะสม ในที่สุดเครื่องก็สามารถลงทะเบียนถอนการลงทะเบียนพักการทำงานด้วยตนเองบน Nagios


0

ฉันไม่มีกระสุนเงินเพื่อแก้ปัญหานี้ด้วย nagios แต่สำหรับ capistrano นั้นมีcapify-ec2ซึ่งเป็นส่วนเสริมสำหรับ capistrano ที่แก้รายการบทบาทเซิร์ฟเวอร์โดยใช้ความสามารถในการติดแท็ก amazon

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