Log Rotation - How to in Linux / Cpanel

Since the beginning of time, cPanel has had logs that it simply does not
rotate properly. Why this has been an ongoing problem that has never been fixed
is beyond me, but it CAN be fixed and we'll go through what is needed to
accomplish this.

 

The most important logs that are missed are the Apache system logs that are
located in /usr/local/apache/logs. SSH into your server as root.

 

pico /etc/logrotate.d/httpd

(on some servers this file is called apache)

 

The first line should read:

 

/usr/local/apache/logs/*log {

 

Also you need to change the line that reads:

 

/bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2>
/dev/null || true

 

to:

 

/bin/kill -HUP `cat /usr/local/apache/logs/httpd.pid
2>/dev/null` 2> /dev/null || true

(the above line should all be on ONE LINE!)

 

The next log file that needs to be dealt with is /var/log/xferlog.  This is
your FTP transfer log.

 

pico /etc/logrotate.d/ftp

 

This will create a new file.  If you are running ProFTP, paste the following
snippet into this file:

 

/var/log/xferlog {

postrotate /bin/kill -HUP `cat /var/proftpd.pid 2> /dev/null` 2> /dev/null ||
true

endscript

missingok

}

 

If you are running PureFTP then paste this into the file:

 

/var/log/xferlog {

postrotate /bin/kill -HUP `cat /var/run/pure-ftpd.pid 2> /dev/null` 2> /dev/null
|| true

endscript

missingok

}

 

The next item we need to deal with is for any sites for which you have
installed SSL certificates for.  If you have not installed any SSL certificates,
then you can skip this section.  Any domain that you have installed an SSL
certificate for gets a log file for tracking SSL traffic and it is located in
/var/log.  These are pretty simple to add.

 

pico /etc/logrotate.conf

 

Add an entry styled like the one below for each secure domain you have on
your server at the end of the file:

 

/var/log/securedomain.tld {

weekly

rotate 1

}

 

Take a look in /var/log to make sure that you have the proper filename i that
first line.  It will match exactly as you have it set up in WHM.

 

One other stray log that cPanel ignores is /var/log/chkservd.log.  Add this
section to the same file (/etc/logrotate.conf) that you were just editing:

 

/var/log/chkservd.log {

weekly

rotate 1

}

 

To add insult to injury, cPanel is not rotating its own logs either.  Place
this in the same file we have been editing:

 

/usr/local/cpanel/logs/stats_log {

weekly

rotate 1

}

 

/usr/local/cpanel/logs/access_log {

weekly

rotate 1

}

 

/usr/local/cpanel/logs/error_log {

weekly

rotate 1

}

  • 0 Users Found This Useful
Was this answer helpful?

Related Articles

Adding MySQL Access Hosts

You can allow external web servers to access your MySQL databases by adding their domain name to...

How do I install ImageMagick ? on a cPanel box (and other nix* solutions)

To install ImageMagick ssh in as root and: 1. mkdir /home/src 2. cd /home/src 3. wget...

How to Configure Web Logs in Apache

Author's Note: While most of this piece discusses configuration options for any operating system...

How to Install Brute Force Detection BFD

What is BFD (Brute Force Detection)? BFD is a modular shell script for parsing applicable logs...

How to Install Subversion

Subversion is a program much like cvs that allows for version management. Though I am not...