ขอ UPDATE สรุปจากข้อความด้านล่างไว้ในข้อความนี้ เพื่อความสะดวกในการค้นหาครับการ config เครื่องที่ใช้ DirectADmin ให้เก็บ log 90 วันตามกฎหมายกำหนดทำตามขั้นตอนต่อไปนี้ส่วนที่ 11. Login เข้าหน้า DA ด้วยสิทธิ์ Admin (ปกติคือ user admin)
2. ไปที่หน้้า Administrator Settings

3. ตั้งค่า Number Apache log เป็น 90 วัน (หรือมากกว่าตามต้องการ)

4. คลิก Save
ถึงตรงนี้เราก็จะได้จำนวน Apache log (Virtual log) 90 วันตามที่กฎหมายกำหนด ซึ่ง
1. log ดังกล่าวมี owner เป็น root ซึ่ง user ไม่สามารถลบออกได้เองด้วย ftp จึงไม่ต้องห่วงเรื่อง user ลบ log ไฟล์เอง
2. DA ไม่นับรวมพื้นที่เก็บ virtual log ของแต่ละ user ดังนั้นจึงสามารถใช้ package ตามปกติได้โดยไม่ต้องเผื่อขนาดของ log ที่เพิ่มขึ้น ซึ่ง DA มีการคำนวนขนาดของ email และ database ให้เห็นในหน้า CP ดังรูป
ส่วนที่ 2สำหรับ FreeBSDทำการปรับแก้ไฟล์ /etc/newsyslog.conf โดยเพิ่มจำนวนวันของ apache, proftpd และ exim ให้เป็น 90 วันก็เป็นอันเสร็จ โดยแก้ไขบรรทัดตามนี้
/etc/newsyslog.conf /var/log/auth.log 600
90 * @T00 JC
/var/log/maillog 640
90 * @T00 JC
/var/log/proftpd/auth.log 600
90 * @T00 -
/var/log/proftpd/xferlog.legacy 600
90 * @T00 -
/var/log/proftpd/access.log 600
90 * @T00 - /var/run/proftpd.pid
/var/log/httpd/access_log apache:apache 600
90 * @T00 -
/var/log/httpd/fpexe_log apache:apache 600
90 * @T00 -
/var/log/httpd/suexec_log apache:apache 600
90 * @T00 -
/var/log/httpd/error_log apache:apache 600
90 * @T00 - /var/run/httpd.pid
/var/log/exim/paniclog mail:mail 600
90 * @T00 -
/var/log/exim/rejectlog mail:mail 600
90 * @T00 -
/var/log/exim/mainlog mail:mail 600
90 * @T00 - /var/run/exim.pid
สำหรับ CentOS (linux)แก้ไขไฟล์ใน folder /etc/logrotate.d/ เฉพาะไฟล์ที่ต้องการเก็บ 90 วันคือ apache, exim และ proftpd
โดยการเพิ่ม rotate 90 ในบรรทัดที่ 2 ของแต่ละไฟล์
/etc/logrotate.d/exim/var/log/exim/mainlog /var/log/exim/processlog /var/log/exim/rejectlog /var/log/exim/paniclog {
rotate 90sharedscripts
/etc/logrotate.d/apache/var/log/httpd/access_log /var/log/httpd/agent_log /var/log/httpd/error_log /var/log/httpd/referer_log /var/log/httpd/suexec_log {
rotate 90 missingok
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
endscript
}
/etc/logrotate.d/proftpd/var/log/proftpd/access.log /var/log/proftpd/auth.log /var/log/proftpd/xferlog.legacy {
rotate 90 missingok
notifempty
postrotate
/usr/bin/kill -HUP `cat /var/run/proftpd.pid 2>/dev/null` 2>/dev/null || true
endscript
}
/etc/logrotate.d/syslog/var/log/messages /var/log/secure /var/log/spooler /var/log/boot.log /var/log/cron {
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}
/var/log/maillog {
rotate 90 sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}
เพียงเท่านี้เราก็จะมี log ไฟล์ของ HTTP / FTP / EMAIL เก็บไว้ในเครื่อง 90 วันตามที่กฎหมายกำหนดเป็นที่เรียบร้อยแล้วครับ
ข้อควรระวังปัญหาที่จะพบคือ virtual log ที่เก็บใน home ของแต่ละ user จะถูกลบเมื่อเราลบ account นั้นไป
ดังนั้นก่อนลบ account ทุกครั้งต้องทำการ backup log ของ user นั้นๆออกมาเสียก่อน
หรือจะ suspense ไว้อย่างน้อย 90 วัน โดยอาจลบไฟล์ใน public_hrml ออกเพื่อประหยัดพื้นที่ก็ได้
