การจัดเก็บ log ของ Web
การจัดเก็บ log ของ Web
การจัดเก็บ log ของเว็บไซด์ในตัวอย่างการจัดเก็บ log นี้ได้จำลองการให้บริการเว็บไซด์โดยใช้ Apache บนระบบปฏิบัติการ CentOS 5.4 โดยจะเก็บไว้ที่ /log/web/access_log ขั้นตอนแรกให้เลือก Facility ในส่วนของ local0 – local7 แล้วกำหนดลงไปใน /etc/rsyslog.conf ดังตัวอย่างจะเลือก local6 เป็น local messages ในการจัดเก็บ access_log ของ Apache ดังนี้
vi /etc/rsyslog.config
;สร้างพาทโดยใช้คำสั่ง mkdir –p /log/web/
;สร้างไฟล์โดยใช้คำสั่ง touch /log/web/apache_log
;กำหนดการส่งข้อมูล log ผ่าน local6 ใช้ action เป็น info เพื่อเก็บข้อมูลทั่วไป
#web log
local6.info /log/web/access_log
หรือส่งไปยัง log server
local6.info @(ip log server):(port)
;เริ่มต้น service ใหม่ด้วยคำสั่ง service rsyslog restart
ส่วนของ Apache นั้นต้องเขียน script เพิ่มเพราะว่า access logs มีลักษณะเป็นแบบ bit trickier ไม่มี Function การส่ง access_log โดยตรงแต่สามารถส่งผ่านในลักษณะของ pipe ได้ด้วยการเขียน script ในตัวอย่างนี้จะใช้ perl script ช่วยในการส่งผ่าน rsyslog ดังนี้
;สร้างไฟล์โดยใช้คำสั่ง touch /usr/local/sbin/apache_syslog
;และกำหนดให้สามารถเอกซีคิวได้ด้วยคำสั่ง chmod a+x /usr/local/sbin/apache_syslog
;เขียน script ดังนี้
#!/usr/bin/perl
use Sys::Syslog qw (:DEFAULT setlogsock);
setlogsock('unix');
# open our log socket
openlog('httpd', 'pid', 'local6');
# log all our input
while (
syslog('info', $_);
}
# close the log socket
closelog;
จากนั้นกำหนดค่าใน /etc/httpd/conf/httpd.conf ค้นหาข้อความ CustomLog logs/access_log combined จากนั้เปลี่ยนเป็น CustomLog |/usr/local/sbin/apache_syslog combined แนะนำให้ทำเป็นคอมเมนต์ไว้ครับ เช่น
#CustomLog logs/access_log combined
CustomLog |/usr/local/sbin/apache_syslog combined
เริ่มการทำงานของ apache ใหม่โดยใช้คำสั่ง service httpd restart ทดสอบด้วยการดู log ว่าหลังจากที่ได้มีการเรียกหน้าเว็บไซด์ไฟล์ /log/web/access_log ได้มีการจัดเก็บหรือบันทึก log ไว้หรือไม่ อาจจะใช้คำสั่ง tail –f /log/web/access_log ซึ่งเป็นการดูไฟล์แบบ real time จากนั้นสั่งเกตุการเปลี่ยนแปลง นอกจากนี้ยังสามารถเก็บ log อื่นๆได้อีกด้วยเช่น การจัดเก็บ error log จาก ErrorLog logs/error_log เปลี่ยนเป็น ErrorLog syslog:local6 เป็นต้น
ความคิดเห็น
แสดงความคิดเห็น