I have a Linode VPS and am getting alerts regarding high CPU usage every few days - a reboot solves the problem - but would rather find the issue.

I'm running Ubuntu 12.10 and other than PHP, MySQL and Apache there I have't installed much else.

Are there any log files I can check to see what was running at the time and caused the CPU spike? If not, is there any good free monitoring software I can install to log CPIU usage and track down what's causing the issues.

Are you talking about the default alerts that Linode sends out? If so, don't worry about it. Those are completely arbitrary alert thresholds, and may not be appropriate for your application. If everything seems to be in order on your server, then just adjust the alert threshold for CPU a bit higher.

These alerts are not Linode telling you that you're using too much CPU. They're purely there for your convenience.