debian wheezy PHP monitoring pinba engine setup and pinboard

Written by Peter Davies on .

Add the following dotdeb repos to your source.list, although you need to be ok with running the dotdeb version of potentially other packages such as PHP itself.

nano /etc/apt/sources.list 

deb stable all
deb-src stable all
deb stable all
deb-src stable all

Add the dotdeb key:

wget -O- -q | apt-key add -

Run the update for the repos:

apt-get update

My wheezy apt could not find the packages as previously mentioned "pinba-mysql-5.5" so I needed to search on the apt cache to find the actual name:

# apt-cache search pinba
collectd-core - statistics collection and monitoring daemon (core system)
php5-pinba - pinba module for php5
pinba-engine-mysql-5.5 - realtime statistics server for PHP using MySQL as a read-only interface

And a quick install of the engine, adding passwords for root user where applicable:

apt-get install pinba-engine-mysql-5.5

Now install the PHP module:

apt-get install php5-pinba

Make sure that in the PHP module config for Pinba you have the correct setting to enable its use: nano /etc/php5/mods-available/pinba.ini:

; configuration for php pinba module
; priority=20

pinba.enabled = 1
pinba.server =

Checking though phpmyadmin shows that its installed and operational:

Pinba Pinboard Setup

The best tool that I know of *so far* for collating and presenting the results collected by Pinba is a PHP tool called "Pinboard" created by a Russian development firm called Intaro. It provides aggregated statistics and also realtime view of collected data. It's clever enough to separate results by requests so you can see multiple sites collated independently so that you can concentrate on application required.

Installation was a simple as following the instructions on the GitHub page and after a few mistakes of my own it was operational on a new virtualmin host having modified the vhost's DocumentRoot to use the applications web version, all was working.

I spotted spot a couple of oddities on my setup (fcgid and suexec) where the following needed setting for the CRON to function as it should:

  • The path to the CRON job for the aggregation of statistics was incorrect /home/pinboard/src/Pinboard/Command/console aggregate and it should have been /home/pinboard/console aggregate in my guess.
  • The src/init.php needed PHP timezone setting date_default_timezone_set('Europe/London');

Once the items above were implemented and fixed, data regarding PHP usage was being populated (based on the intervals defined in the CRON):