ฉันต้องการได้รับการแจ้งเตือนทางอีเมลทุกครั้งที่ syslogd บันทึกบางสิ่งเช่นพูดว่ามีerr
ความสำคัญหรือสูงกว่า สมมติว่านี่เป็น syslog daemon ของ BSD
- สามารถทำได้หรือไม่
- ฉันควรใช้ไพพ์ที่มีชื่อกับเชลล์สคริปต์หรือไม่
- มีวิธีแก้ไขปัญหาอื่น ๆ อีกหรือไม่
ฉันต้องการได้รับการแจ้งเตือนทางอีเมลทุกครั้งที่ syslogd บันทึกบางสิ่งเช่นพูดว่ามีerr
ความสำคัญหรือสูงกว่า สมมติว่านี่เป็น syslog daemon ของ BSD
คำตอบ:
นี่คือโซลูชันที่ใช้ไพพ์ที่มีชื่อ มันถูกตั้งค่าสำหรับ Debian แต่คุณควรจะสามารถแก้ไขได้สำหรับ BSD
บนเซิร์ฟเวอร์ OpenBSD ของฉันฉันเข้าสู่ระบบและข้อความอีเมลที่สำคัญจากการใช้งานเว็บของเราซึ่งใช้สถานที่local1 นี่คือ/etc/syslog.confของฉันเพื่อให้มันเกิดขึ้น:
local1.err /var/log/example.com
local1.err |while read log; do echo "$log" | /usr/bin/mail -s SYSLOG me@example.com; done
ขอให้สังเกตว่าในขณะที่วนซ้ำอ่านแต่ละบรรทัดจาก syslogd อย่างไม่ จำกัด และไปป์ไปยังจดหมายผ่าน echo นี้เป็นสิ่งสำคัญ. เมื่อเสียงก้องเอาท์พุทสายมันจะยุติไปป์ส่งอีเมล EOF เพื่อให้สามารถส่งอีเมลข้อความบันทึก
กล่าวอีกนัยหนึ่งคุณไม่สามารถส่งเมลโดยตรงผ่าน syslogd ได้เช่น:
local1.err |/usr/bin/mail -s SYSLOG me@example.com
เนื่องจาก syslogd จะเขียนต่อไปยังไปป์จนกว่าจะถูกยกเลิกหรือส่งสัญญาณ HUP ซึ่งจดหมายเวลาจะส่งข้อความบันทึกทั้งชุดในอีเมลขนาดใหญ่ชุดเดียว
การจัดกำหนดการ newsyslog ใน cron เป็นอีกวิธีหนึ่งในการรับข้อความในอัตราที่ช้าลงหรือเป็นกลุ่ม
ตัวอย่างเช่นหากคุณต้องการให้อีเมลสรุปรายวันของข้อความบันทึกให้ตั้งค่าสถานะMและระบุที่อยู่อีเมลของจอภาพใน/etc/newsyslog.conf :
# logfile_name owner:group mode count size when flags monitor
/var/log/example.com root:wheel 640 7 * 24 M me@example.com
จากนั้นกำหนดเวลา newsyslog ใน crontab:
# minute hour mday month wday command
0 * * * * /usr/bin/newsyslog
1-59 * * * * /usr/bin/newsyslog -m
-mตัวเลือกสำหรับโปรแกรม newsyslog (8)ฯ :
โหมดการตรวจสอบ; ประมวลผลเฉพาะรายการที่มีเครื่องหมาย `M 'ในธงเท่านั้น สำหรับล็อกไฟล์แต่ละไฟล์ที่ถูกมอนิเตอร์เอาต์พุตล็อกใด ๆ ตั้งแต่ครั้งล่าสุดที่ newsyslog ถูกรันด้วยแฟล็ก -m จะถูกส่งไปยังผู้ใช้ที่แสดงรายการในส่วนการแจ้งเตือนการมอนิเตอร์
คุณอาจต้องการดู logcheck หรือ logwatch Logcheck จะส่งอีเมลถึงคุณเป็นรายชั่วโมงโดยมีบรรทัดบันทึกที่ไม่ตรงกับชุดรูปแบบ ฉันสงสัยว่าคุณอาจจะทำให้มันบ่อยขึ้น ฉันไม่รู้เครื่องมือใด ๆ ที่ทำได้โดยดู logfiles แต่ฉันแน่ใจว่ามีบางอย่างที่ทำ
ฉันจะใช้ OSSEC มันจะตรวจสอบบันทึกของคุณในเวลาจริงและช่วยให้คุณสามารถแจ้งเตือนทางอีเมล (หรือวิธีการอื่น ๆ ) ได้อย่างง่ายดายเมื่อมีการจับคู่เหตุการณ์ที่เฉพาะเจาะจง ง่ายต่อการใช้ปรับขนาดได้และเปิดแหล่งที่มา
ลิงก์: http://www.ossec.net