รพจศ

วันจันทร์ที่ 22 สิงหาคม พ.ศ. 2559

การเก็บ logfile ของ apache แบบแบ่งเป็นรายวัน


apache accesslog,วิธีแก้ apache access มีขนาดใหญ่
     กราบสวัสดีทุกท่าน ท่ามกลางกระแสการปรับเงินเดือนอันอึมครึม และสวัสดีมิตรรักแฟนเพลง ช่วงนี้ผมยังคงวนเวียนอยู่แถว apache webserver เพราะยังมีอะไรอีกหลายอย่างที่ยังเรียนรู้ไม่หมด คาดว่าคงเอามาเขียนเป็นบันทึกกันลืมได้อีกยาว วันนี้มาพูดกันถึงเรื่องของ logfile ครับ ใครที่ใช้ apache แล้วไม่ได้ไปแก้ค่าให้ตัว apache สร้าง logfile แบบวันต่อวันคงต้องปวดหัวเรื่อง accesslog ของเจ้าตัว apache อยู่ไม่น้อยเพราะมันจะมีขนาดใหญ่ขึ้นทุกวันจนต้องหาโปรแกรมที่สามารถเปิดดู log ขนาดใหญ่ได้ เช่น apachelogviewer ซึ่งจริงๆแล้วเราสามารถกำหนดให้ apache สร้าง logfile เป็นรายวันได้ด้วยการแก้ไขเพียงบรรทัดเดียวในไฟล์  httpd.conf  ดังต่อไปนี้
1.ต้องมี rotatelogslogs ก่อน (ส่วนมากจะอยู่ใน bin แต่คาดว่าน่าจะมีทุกคน)
2.เปิดไฟล์ httpd.conf มาแล้วก็แก้
เป็น linux ก็
CustomLog "|bin/rotatelogs /var/logs/logfile 86400" common   //สร้าง logfile การใช้งาน 86400 วินาที (24 ชั่วโมง)   
CustomLog "|bin/rotatelogs -l /var/logs/logfile.%Y.%m.%d 86400" common    //สร้าง logfile โดยเครื่องหมาย . ในที่นี้คือตัวคั่นระหว่างชื่อไฟล์เช่น logfile.2012.09.18 ก็จะได้ประมาณนี้ครับ 
CustomLog "|bin/rotatelogs /var/logs/logfile 5M" common  //อันนี้กำหนดขนาดของ logfile ไม่ให้เกิน 5 M


ErrorLog "|bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M"   //อันนี้กำหนดขนาดของ logfile ไม่ให้เกิน 5 M พร้อมทั้งใส่ปีเดือนวันและเวลา

เป็น windows ก็
CustomLog "|bin/rotatelogs.exe   logs/access.%y-%m-%d.log 86400" common         //ก็จะได้เป็นชื่อไฟล์ เช่น access.2012-09-18.log
พอแก้เสร็จแล้วให้ save แล้ว restart service apache ครับ

*ข้อควรระวัง*
เวลาแก้ไขให้ใช้วิธีใส่เครื่องหมาย # ไว้หน้าคำสั่งเก่าเช่น เพื่อป้องกันความผิดพลาดหากเราเขียนเครื่องหมายผิดไป service apache มันจะไม่ยอม start ให้นะครับ
#CustomLog logs/access.log common Modify by champ 9:35 170955
CustomLog "|bin/rotatelogs.exe logs/access.%y-%m-%d.log 86400" common
ขอให้ภาระกิจลุล่วงครับ ^^

อ้างอิง
http://httpd.apache.org/docs/2.2/programs/rotatelogs.html
เครดิต http://share.psu.ac.th/blog/champy-it/25167