php-fpm模板(监控页面取值)
开启监控页面配置
#修改php配置文件
vim /etc/php-fpm.d/www.conf
pm.status_path = /php_status#修改nginx配置文件,添加到nginx配置文件中
vim /etc/nginx/conf.d/default.conflocation /php_status {root html;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;include fastcgi_params;}#重启nginx和php服务
systemctl restart nginx php-fpm.service
web界面浏览器访问
导入模板fpm.xml
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export><version>2.0</version><date>2015-10-12T08:46:18Z</date><groups><group><name>Templates</name></group></groups><templates><template><template>Template php-fpm</template><name>Template php-fpm</name><description/><groups><group><name>Templates</name></group></groups><applications><application><name>php-fpm</name></application></applications><items><item><name>$1</name><type>0</type><snmp_community/><multiplier>0</multiplier><snmp_oid/><key>php-fpm["total processes",{$PHP_FPM_STATUS_URL}]</key><delay>60</delay><history>90</history><trends>365</trends><status>0</status><value_type>0</value_type><allowed_hosts/><units/><delta>0</delta><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><formula>1</formula><delay_flex/><params/><ipmi_sensor/><data_type>0</data_type><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>php-fpm</name></application></applications><valuemap/><logtimefmt/></item><item><name>$1</name><type>0</type><snmp_community/><multiplier>0</multiplier><snmp_oid/><key>php-fpm["listen queue",{$PHP_FPM_STATUS_URL}]</key><delay>60</delay><history>90</history><trends>365</trends><status>0</status><value_type>0</value_type><allowed_hosts/><units/><delta>0</delta><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><formula>1</formula><delay_flex/><params/><ipmi_sensor/><data_type>0</data_type><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>php-fpm</name></application></applications><valuemap/><logtimefmt/></item><item><name>$1</name><type>0</type><snmp_community/><multiplier>0</multiplier><snmp_oid/><key>php-fpm["listen queue len",{$PHP_FPM_STATUS_URL}]</key><delay>60</delay><history>90</history><trends>365</trends><status>0</status><value_type>0</value_type><allowed_hosts/><units/><delta>0</delta><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><formula>1</formula><delay_flex/><params/><ipmi_sensor/><data_type>0</data_type><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>php-fpm</name></application></applications><valuemap/><logtimefmt/></item><item><name>$1</name><type>0</type><snmp_community/><multiplier>0</multiplier><snmp_oid/><key>php-fpm["active processes",{$PHP_FPM_STATUS_URL}]</key><delay>60</delay><history>90</history><trends>365</trends><status>0</status><value_type>0</value_type><allowed_hosts/><units/><delta>0</delta><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><formula>1</formula><delay_flex/><params/><ipmi_sensor/><data_type>0</data_type><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>php-fpm</name></application></applications><valuemap/><logtimefmt/></item><item><name>$1</name><type>0</type><snmp_community/><multiplier>0</multiplier><snmp_oid/><key>php-fpm["idle processes",{$PHP_FPM_STATUS_URL}]</key><delay>60</delay><history>90</history><trends>365</trends><status>0</status><value_type>0</value_type><allowed_hosts/><units/><delta>0</delta><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><formula>1</formula><delay_flex/><params/><ipmi_sensor/><data_type>0</data_type><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>php-fpm</name></application></applications><valuemap/><logtimefmt/></item><item><name>$1/sec</name><type>0</type><snmp_community/><multiplier>0</multiplier><snmp_oid/><key>php-fpm["accepted conn",{$PHP_FPM_STATUS_URL}]</key><delay>60</delay><history>90</history><trends>365</trends><status>0</status><value_type>0</value_type><allowed_hosts/><units/><delta>1</delta><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><formula>1</formula><delay_flex/><params/><ipmi_sensor/><data_type>0</data_type><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>php-fpm</name></application></applications><valuemap/><logtimefmt/></item><item><name>$1/sec</name><type>0</type><snmp_community/><multiplier>0</multiplier><snmp_oid/><key>php-fpm["slow requests",{$PHP_FPM_STATUS_URL}]</key><delay>60</delay><history>90</history><trends>365</trends><status>0</status><value_type>0</value_type><allowed_hosts/><units/><delta>1</delta><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><formula>1</formula><delay_flex/><params/><ipmi_sensor/><data_type>0</data_type><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>php-fpm</name></application></applications><valuemap/><logtimefmt/></item></items><discovery_rules/><macros><macro><macro>{$PHP_FPM_STATUS_URL}</macro><value>http://127.0.0.1:10061/php-fpm_status</value></macro></macros><templates/><screens/></template></templates><triggers><trigger><expression>{Template php-fpm:php-fpm["active processes",{$PHP_FPM_STATUS_URL}].nodata(220)}=1 or {Template php-fpm:php-fpm["active processes",{$PHP_FPM_STATUS_URL}].last(0)}<0</expression><name>PHP-fpm of {HOSTNAME} is down</name><url/><status>0</status><priority>5</priority><description/><type>0</type><dependencies><dependency><name>Zabbix agent on {HOST.NAME} is unreachable for 5 minutes</name><expression>{Template OS Linux:agent.ping.nodata(5m)}=1</expression></dependency></dependencies></trigger></triggers><graphs><graph><name>php-fpm Accepted Connections / sec</name><width>900</width><height>200</height><yaxismin>0.0000</yaxismin><yaxismax>100.0000</yaxismax><show_work_period>1</show_work_period><show_triggers>1</show_triggers><type>0</type><show_legend>1</show_legend><show_3d>0</show_3d><percent_left>0.0000</percent_left><percent_right>0.0000</percent_right><ymin_type_1>0</ymin_type_1><ymax_type_1>0</ymax_type_1><ymin_item_1>0</ymin_item_1><ymax_item_1>0</ymax_item_1><graph_items><graph_item><sortorder>0</sortorder><drawtype>0</drawtype><color>C80000</color><yaxisside>0</yaxisside><calc_fnc>2</calc_fnc><type>0</type><item><host>Template php-fpm</host><key>php-fpm["accepted conn",{$PHP_FPM_STATUS_URL}]</key></item></graph_item></graph_items></graph><graph><name>php-fpm Listen Queue</name><width>900</width><height>200</height><yaxismin>0.0000</yaxismin><yaxismax>100.0000</yaxismax><show_work_period>1</show_work_period><show_triggers>1</show_triggers><type>0</type><show_legend>1</show_legend><show_3d>0</show_3d><percent_left>0.0000</percent_left><percent_right>0.0000</percent_right><ymin_type_1>0</ymin_type_1><ymax_type_1>0</ymax_type_1><ymin_item_1>0</ymin_item_1><ymax_item_1>0</ymax_item_1><graph_items><graph_item><sortorder>0</sortorder><drawtype>0</drawtype><color>EE0000</color><yaxisside>0</yaxisside><calc_fnc>2</calc_fnc><type>0</type><item><host>Template php-fpm</host><key>php-fpm["listen queue len",{$PHP_FPM_STATUS_URL}]</key></item></graph_item><graph_item><sortorder>1</sortorder><drawtype>0</drawtype><color>00EE00</color><yaxisside>0</yaxisside><calc_fnc>2</calc_fnc><type>0</type><item><host>Template php-fpm</host><key>php-fpm["listen queue",{$PHP_FPM_STATUS_URL}]</key></item></graph_item></graph_items></graph><graph><name>php-fpm Processes</name><width>900</width><height>200</height><yaxismin>0.0000</yaxismin><yaxismax>100.0000</yaxismax><show_work_period>1</show_work_period><show_triggers>1</show_triggers><type>1</type><show_legend>1</show_legend><show_3d>0</show_3d><percent_left>0.0000</percent_left><percent_right>0.0000</percent_right><ymin_type_1>0</ymin_type_1><ymax_type_1>0</ymax_type_1><ymin_item_1>0</ymin_item_1><ymax_item_1>0</ymax_item_1><graph_items><graph_item><sortorder>0</sortorder><drawtype>0</drawtype><color>EE0000</color><yaxisside>0</yaxisside><calc_fnc>4</calc_fnc><type>0</type><item><host>Template php-fpm</host><key>php-fpm["active processes",{$PHP_FPM_STATUS_URL}]</key></item></graph_item><graph_item><sortorder>1</sortorder><drawtype>0</drawtype><color>00EE00</color><yaxisside>0</yaxisside><calc_fnc>1</calc_fnc><type>0</type><item><host>Template php-fpm</host><key>php-fpm["idle processes",{$PHP_FPM_STATUS_URL}]</key></item></graph_item></graph_items></graph><graph><name>php-fpm Slow Requests / sec</name><width>900</width><height>200</height><yaxismin>0.0000</yaxismin><yaxismax>100.0000</yaxismax><show_work_period>1</show_work_period><show_triggers>1</show_triggers><type>0</type><show_legend>1</show_legend><show_3d>0</show_3d><percent_left>0.0000</percent_left><percent_right>0.0000</percent_right><ymin_type_1>0</ymin_type_1><ymax_type_1>0</ymax_type_1><ymin_item_1>0</ymin_item_1><ymax_item_1>0</ymax_item_1><graph_items><graph_item><sortorder>0</sortorder><drawtype>0</drawtype><color>C80000</color><yaxisside>0</yaxisside><calc_fnc>2</calc_fnc><type>0</type><item><host>Template php-fpm</host><key>php-fpm["slow requests",{$PHP_FPM_STATUS_URL}]</key></item></graph_item></graph_items></graph></graphs>
</zabbix_export>
上传脚本文件fpm.sh
#!/bin/bash
##################################
# Zabbix monitoring script
#
# php-fpm:
# - anything available via FPM status page
#
##################################
# Contact:
# vincent.viallet@gmail.com
##################################
# ChangeLog:
# 20100922 VV initial creation
################################### Zabbix requested parameter
ZBX_REQ_DATA="$1"
ZBX_REQ_DATA_URL="$2"# Nginx defaults
NGINX_STATUS_DEFAULT_URL="http://localhost/fpm/status"
WGET_BIN="/usr/bin/wget"#
# Error handling:
# - need to be displayable in Zabbix (avoid NOT_SUPPORTED)
# - items need to be of type "float" (allow negative + float)
#
ERROR_NO_ACCESS_FILE="-0.91"
ERROR_NO_ACCESS="-0.92"
ERROR_WRONG_PARAM="-0.93"
ERROR_DATA="-0.94" # either can not connect / bad host / bad port# Handle host and port if non-default
if [ ! -z "$ZBX_REQ_DATA_URL" ]; thenURL="$ZBX_REQ_DATA_URL"
elseURL="$NGINX_STATUS_DEFAULT_URL"
fi# save the nginx stats in a variable for future parsing
NGINX_STATS=$($WGET_BIN -q $URL -O - 2>/dev/null)# error during retrieve
if [ $? -ne 0 -o -z "$NGINX_STATS" ]; thenecho $ERROR_DATAexit 1
fi#
# Extract data from nginx stats
#
#RESULT=$(echo "$NGINX_STATS" | awk 'print $0;match($0, "^'"$ZBX_REQ_DATA"':[[:space:]]+(.*)", a) { print a[1] }')
#RESULT=$(echo "$NGINX_STATS" | grep "$ZBX_REQ_DATA" | awk -F : '{print $2}')
RESULT=$(echo "$NGINX_STATS" | awk -F : "{if(\$1==\"$ZBX_REQ_DATA\") print \$2}")
if [ $? -ne 0 -o -z "$RESULT" ]; thenecho $ERROR_WRONG_PARAMexit 1
fiecho $RESULTexit 0
准备zabbix的配置文件
并测试脚本
sh fpm.sh "total processes" http://127.0.0.1/php_status
在zabbix-server上zabbix-get测试取值
链接模板
注意修改模板宏的值
查看检测最新数据