Menu
Index

Contact
LinkedIn
GitHub
Atom Feed
Comments Atom Feed



Tweet

Similar Articles

12/03/2016 15:33
PHP Zend opcache on Cacti via SNMP
08/01/2015 22:58
Nginx on Cacti via SNMP
08/01/2015 22:59
php-fpm on Cacti via SNMP
14/11/2009 13:46
Apache stats on Cacti (via SNMP)
31/10/2009 16:02
LM Sensors stats on Cacti (via SNMP)
31/10/2009 14:46
SMART stats on Cacti (via SNMP)

Recent Articles

23/04/2017 14:21
Raspberry Pi SD Card Test
07/04/2017 10:54
DNS Firewall (blackhole malicious, like Pi-hole) with bind9
28/03/2017 13:07
Kubernetes to learn Part 4
23/03/2017 16:09
Kubernetes to learn Part 3
21/03/2017 15:18
Kubernetes to learn Part 2

Glen Pitt-Pladdy :: Blog

PHP APC on Cacti via SNMP

For a while now I've had a task on my list to "blog up Cacti APC". This is of course referring to the popular APC opcode cache for PHP. Monitoring the opcode cache is very important for PHP since if it is not working efficiently (eg. many evictions due to lack of memory) then PHP is going to be burning a lot of resource on continually recompiling code.

At some point I'll do the same for the Zend cache, but for now here's what I've done for APC.

Before attempting this, look at my previous article on SNMP basics takes look at general setup of snmpd and how basic extensions work.

Extracting the statistics

There is no built-in monitoring hook in APC, but instead the PHP function apc_cache_info() provides a way to extract statistics. The easiest way to do this is to have a small PHP page which extracts the statistics we want. For this I've written one that outputs a plain-text list of statistics.

Download: PHP APC monitoring scripts and Cacti Templates on GitHub

The monitoring script apcstat.php can be put somewhere it can be served by the webserver you are using with PHP. For example the configuration for Nginx with php-fpm for this placed in the root of a web site would be:

        location /apcstat.php {
                access_log off;
                allow ::1;
                allow 127.0.0.1;
                deny all;
                # With php5-fpm:
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                root /path/to/root/of/site/;
                include fastcgi_params;
        }

Then to pick the data up via snmpd, add the following lines to /etc/snmp/snmpd.conf to call the script for appropriate SNMP requests:

# php apc
extend phpapc /usr/bin/curl --silent http://localhost/apcstat.php

Restart snmpd and you should be able to get basic stats via SNMP.

Cacti Templates

I have generated some basic Cacti Templates for APC.

Simply import the template cacti_host_template_php_apc.xml, and add the graphs you want to the appropriate device graphs in Cacti. It should just work if your SNMP is working correctly for that device (ensure other SNMP parameters are working for that device).

Graph Screen Shots

From an extremely lightweight site...

Cacti PHP APC Cache Efficiency

Cacti PHP APC Cache Usage

 

Comments:




Are you human? (reduces spam)
Note: Identity details will be stored in a cookie. Posts may not appear immediately