Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Zabbix PHP-fpm Template with Auto-discovery and support for multiple pools

Main features

  • Supports auto discovery of pool (name)
  • Easy and flexible configuration
  • Low load on Zabbix server: most elements sending info by zabbix_sender
  • Bash: no need to install Perl, PHP, Go or other languages
  • Safe: no need to allow root for zabbix agent

Provided Items

We capture useful data from host and fpm status page:

  • PHP-fpm main statistic:

    • Number of running php-fpm - the number of running php-fpm processes
  • For each pool:

    • Uptime - the uptime of current pool
    • Start time - the moment of launch of current pool
    • Processes - the number of processes in total / active / idle state of current pool
    • Memory used - the number and % of used memory by current pool
    • Requests - the number of reqiests in accepted (per min) / queue / slow state of current pool
    • Other - another stats from status page of current pool

History storage period is 7 days, trend storage period is 30 days. Data is captured every minute. These timings can be adjusted in template or per host if needed.

Provided Triggers

  • PHP-fpm is not running
  • {#POOL}: accepted connections over threshold
  • {#POOL}: process manager was changed
  • {#POOL}: queue detected
  • {#POOL}: slow requests detected
  • {#POOL}: used memory over threshold
  • {#POOL}: was restarted

Provided Graphs

Processes for each pool

Zabbix Php-fpm Graph #1

Displays the following data:

  • Number of Active processes
  • Number of IDLE processes
  • Total number of processes

Requests for each pool

Zabbix Php-fpm Graph #2

Displays the following data:

  • Number of Accepted requests
  • Number of Slow requests
  • Queue


1. On Target server

Perform the following operations on all servers with Zabbix Agent and PHP-fpm from which you want to capture the data.

1.1 Install required packages

apt-get update
apt-get install jq libxml2-utils

1.2 Download the latest version of the php-fpm monitoring, install files, restart zabbix-agent

wget /tmp/
unzip /tmp/
cp /tmp/zabbix-phpfpm-monitoring/fpm-monitoring.conf /etc/zabbix/zabbix_agentd.conf/
cp /tmp/zabbix-phpfpm-monitoring/ /etc/zabbix/scripts/
chmod +x /etc/zabbix/scripts/
systemctl restart zabbix-agent.service

If you using non-standart zabbix-agent.conf path change it in


1.3 Clean up

Delete temporary files:

rm /tmp/
rm -r /tmp/zabbix-phpfpm-monitoring/

2. On Zabbix Server

2.1 Import Zabbix php-fpm template

In Zabbix frontend go to "Configuration"->"Templates"->"Import":

Upload file /fpm_template.xml from the archive.

2.2 Add the template to your hosts

Add template "PHP-fpm Template" to the hosts.

Add your status page address in the macros section of the host by adding value:

{$FPM_STATUS_URL}=your status page address

For few pools on one host: Add your status pages addresses in the macros section of the host. Example:


oIo - speacial symbols sequence for dividing status pages addresses (you can rewrite it in


Rewrite tresholds (if needed):

{$FPM_MEM_WARN}=50 //mem % of total mem for trigger
{$FPM_CONN_WARN}=150 //number of accepted reqs per minute for trigger

Setup is finished, just wait 15 minutes till Zabbix discovers your providers and captures the data (or use manual check).


Tested with:

  • Zabbix 4.2.5
  • PHP 7.3

Should work:

  • Zabbix 4.x
  • Zabbix 3.x
  • PHP 5.6

Not tested with:

  • Zabbix 2.x

If it works, please let me know.


PHP-fpm monitoring template for Zabbix with auto discovery, support for multiple pools







No releases published

Sponsor this project


No packages published