Atom Feed
Comments Atom Feed

Similar Articles

2015-05-14 22:35
PHP APC on Cacti via SNMP
2015-01-08 22:58
Nginx on Cacti via SNMP
2015-01-08 22:59
php-fpm on Cacti via SNMP
2009-11-14 13:46
Apache stats on Cacti (via SNMP)
2015-02-13 22:51
opendkim on Cacti via SNMP

Recent Articles

2019-07-28 16:35
git http with Nginx via Flask wsgi application (git4nginx)
2018-05-15 16:48
Raspberry Pi Camera, IR Lights and more
2017-04-23 14:21
Raspberry Pi SD Card Test
2017-04-07 10:54
DNS Firewall (blackhole malicious, like Pi-hole) with bind9
2017-03-28 13:07
Kubernetes to learn Part 4

Glen Pitt-Pladdy :: Blog

PHP Zend opcache on Cacti via SNMP

Previously I wrote up Cacti for PHP APC cache. While APC is widely used, Zend opcache has rapidly become the default PHP opcode cache for many. 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.

This is essentially the same tricks for a new cache. 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

To extract stats from opcache we use the opcache_get_status() function and format the key fields as plain text to make it easy for snmpd to ingest.

Download: PHP opcache monitoring scripts and Cacti Templates on GitHub

The monitoring script opcachestat.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 /opcachestat.php {
                access_log off;
                allow ::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 opcache
extend phpopcache /usr/bin/curl --silent http://localhost/opcachestat.php

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

Cacti Templates

I have generated some basic Cacti Templates for opcache.

Simply import the template cacti_host_template_php_opcache.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 opache Efficiency

Cacti PHP opache Cache Usage

Cacti PHP opache Cached Scripts

Cacti PHP opache Cached Keys