- Repository
- Munin (contrib)
- Last change
- 2020-05-01
- Graph Categories
- Family
- auto
- Capabilities
- Keywords
- Language
- Shell
- License
- curl
- Authors
php_fpm_status
Sadly there is no documentation for this plugin.
#!/bin/sh
: <<=cut
=head CONFIGURATION
Plugin to monitor php-fpm process manager, php-fpm >=5.3.3 is required
INSTALLATION
1. Install curl or wget
2. Configure PHP to respond to status request by setting pm.status_path in your php fpm config file.
3. Configure your websever to respond to this path, it's advisable to restrict
this to localhost
4. Configure munin-node with a url environment variable for the url you wish to test
You can use symlinks and config files to monitor multiple pools
ln -s /usr/share/munin/php_fpm_status /usr/share/munin/php_fpm_status_www
ln -s /usr/share/munin/php_fpm_status /usr/share/munin/php_fpm_status_www2
[php_fpm_status_www]
env.url http://127.0.0.1/fpm-status-www
[php_fpm_status_www2]
env.url http://127.0.0.1/fpm-status-www2
=head COPYRIGHT
Copyright (C) 2020 Rowan Wookey <https://www.rwky.net>
Copyright (C) 2011 Daniel Caillibaud
Copyright (C) 2010 radar AT aol DOT pl
=head LICENSE
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
=head MAGIC MARKERS
#%# family=auto
#%# capabilities=autoconf
=cut
url=${url:-'http://127.0.0.1/fpm-status'}
if command -v wget > /dev/null 2>&1
then
data=$(wget -O - -q "$url")
elif command -v curl > /dev/null 2>&1
then
data=$(curl -s "$url")
else
echo "wget or curl must be installed" >&2
exit 1
fi
pool=$(echo "$data" | awk '/pool/{print $2}')
if [ "$1" = "autoconf" ]
then
if [ -n "$pool" ]
then
echo 'yes'
fi
exit 0
fi
if [ "$1" = "config" ]; then
echo "graph_title php-fpm status $pool"
echo "graph_args --base 1000 -l 0"
echo "graph_vlabel Processes"
echo "graph_scale yes"
echo "graph_category webserver"
echo "graph_info This graph shows the php-fpm process manager status from pool: $pool"
echo "active.label Active processes"
echo "active.type GAUGE"
echo "active.draw AREA"
echo "active.info The number of active processes"
echo "idle.label Idle processes"
echo "idle.type GAUGE"
echo "idle.draw STACK"
echo "idle.info The number of idle processes"
echo "total.label Total processes"
echo "total.type GAUGE"
echo "total.draw LINE2"
echo "total.info The number of idle + active processes"
exit 0
else
echo "$data" | awk '
/^idle/ {print "idle.value " $3}
/^active/{print "active.value " $3}
/^total/ {print "total.value " $3}
'
fi