คุณวิเคราะห์ไฟล์บันทึกจากเครื่อง UNIX / Linux อย่างไร เราเรียกใช้เซิร์ฟเวอร์หลายร้อยเซิร์ฟเวอร์ซึ่งทั้งหมดสร้างไฟล์บันทึกของตนเองไม่ว่าโดยตรงหรือผ่าน syslog ฉันกำลังมองหาทางออกที่ดีในการรวบรวมและเลือกเหตุการณ์สำคัญ ปัญหานี้แบ่งออกเป็น 3 องค์ประกอบ:
1) การขนส่งข้อความ
วิธีคลาสสิคคือการใช้ syslog เพื่อบันทึกข้อความไปยังโฮสต์ระยะไกล ใช้งานได้ดีสำหรับแอปพลิเคชันที่ลงชื่อเข้าใช้ syslog แต่มีประโยชน์น้อยกว่าสำหรับแอปที่เขียนไปยังไฟล์ในเครื่อง วิธีแก้ไขปัญหานี้อาจรวมถึงการมีล็อกแอปพลิเคชันลงใน FIFO ที่เชื่อมต่อกับโปรแกรมเพื่อส่งข้อความโดยใช้ syslog หรือโดยการเขียนสิ่งที่จะ grep ไฟล์โลคัลและส่งเอาต์พุตไปยังโฮสต์ syslog กลาง อย่างไรก็ตามหากเราพบปัญหาในการเขียนเครื่องมือเพื่อส่งข้อความไปยัง syslog เราควรจะแทนที่ล็อตทั้งหมดด้วยดีกว่าเช่นScribeของ Facebook ที่ให้ความยืดหยุ่นและความน่าเชื่อถือมากกว่า syslog หรือไม่?
2) การรวมข้อความ
รายการบันทึกดูเหมือนจะเป็นหนึ่งในสองประเภท: ต่อโฮสต์และต่อบริการ ข้อความต่อโฮสต์คือข้อความที่เกิดขึ้นในเครื่องเดียว คิดว่าดิสก์ล้มเหลวหรือเข้าสู่ระบบที่น่าสงสัย ข้อความต่อบริการเกิดขึ้นในโฮสต์ส่วนใหญ่หรือทั้งหมดที่ใช้บริการ ตัวอย่างเช่นเราต้องการทราบว่าเมื่อ Apache พบข้อผิดพลาด SSI แต่เราไม่ต้องการข้อผิดพลาดเดียวกันจาก 100 เครื่อง ในทุกกรณีเราต้องการเห็นเพียงหนึ่งข้อความแต่ละประเภท: เราไม่ต้องการ 10 ข้อความที่บอกว่าดิสก์เดียวกันล้มเหลวและเราไม่ต้องการข้อความทุกครั้งที่มีการตี SSI ที่เสียหาย
วิธีหนึ่งในการแก้ไขปัญหานี้คือการรวมข้อความจำนวนมากที่มีประเภทเดียวกันเป็นหนึ่งเดียวบนแต่ละโฮสต์ส่งข้อความไปยังเซิร์ฟเวอร์กลางจากนั้นรวมข้อความประเภทเดียวกันเข้าด้วยกันเป็นเหตุการณ์เดียว SERสามารถทำสิ่งนี้ได้ แต่ใช้งานไม่สะดวก แม้หลังจากสองสามวันของการเล่นซอฉันมีเพียงการชุมนุมขั้นพื้นฐานที่ทำงานและต้องค้นหาตรรกะอย่างต่อเนื่อง SER ใช้เพื่อเชื่อมโยงเหตุการณ์ มันทรงพลัง แต่มีเล่ห์เหลี่ยม: ฉันต้องการบางสิ่งที่เพื่อนร่วมงานของฉันสามารถหยิบขึ้นมาและใช้ในเวลาที่สั้นที่สุด กฎของ SER ไม่ตรงตามข้อกำหนดนั้น
3) การสร้างการแจ้งเตือน
เราจะบอกผู้ดูแลระบบของเราได้อย่างไรเมื่อมีบางสิ่งที่น่าสนใจเกิดขึ้น ส่งกล่องจดหมายเข้ากลุ่มหรือไม่ ฉีดเข้า Nagios?
ดังนั้นคุณจะแก้ปัญหานี้อย่างไร ฉันไม่คาดหวังคำตอบบนจาน ฉันสามารถหารายละเอียดได้ด้วยตัวเอง แต่การอภิปรายระดับสูงเกี่ยวกับสิ่งที่เป็นปัญหาร่วมกันก็น่าจะดี ในขณะนี้เรากำลังใช้งาน mashmash ของงาน cron, syslog และใครจะรู้ว่ามีอะไรอีกที่จะค้นหาเหตุการณ์ สิ่งนี้ไม่สามารถยืดขยายได้บำรุงรักษาหรือมีความยืดหยุ่นดังนั้นเราจึงพลาดสิ่งต่าง ๆ มากมายที่เราไม่ควรทำ
อัปเดต:เรากำลังใช้ Nagios สำหรับการตรวจสอบซึ่งเหมาะสำหรับการตรวจสอบโฮสต์ / บริการทดสอบ / ฯลฯ แต่ก็มีประโยชน์น้อยกว่าสำหรับการคัดลอกไฟล์บันทึก ฉันรู้ว่ามีปลั๊กอินการบันทึกสำหรับ Nagios แต่ฉันสนใจในสิ่งที่ปรับขนาดได้และลำดับชั้นมากกว่าการแจ้งเตือนต่อโฮสต์