#!/bin/bash
##################################
# Zabbix monitoring script
#
# php-fpm:
# - anything available via php-fpm status
#
##################################
# Contact:
# tgavriltg@gmail.com
##################################
# ChangeLog:
# 2014-04-01 VV initial creation
##################################

# Zabbix default parameter
ZABBIX_SENDER="/usr/local/zabbix/bin/zabbix_sender"
ZABBIX_SERVER="10.10.253.1"
if [ -x /usr/local/zabbix/bin/zabbix_sender ];then
ZABBIX_SENDER="/usr/local/zabbix/bin/zabbix_sender"
elif [ -x /usr/local/zabbix/bin/zabbix_sender ];then
ZABBIX_SENDER="/usr/local/zabbix/bin/zabbix_sender"
else
echo "do not find zabbix_sender."
exit 1
fi

# php-fpm defaults
URL="http://127.0.0.1:56789/weimobphp00status"
WGET="/usr/bin/wget"
PHP_FPM_STATS="/tmp/php_fpm_stats"

#tmp file
TMP_FILE="/tmp/pmstatus"
#error info
ERROR_DATA="either can not connect / bad host / bad port, or cat not get intranet ip"

usage(){
cat << EOF
Usage:
This program is extract data from php-fpm stats to zabbix.
Options:
--help|-h)
Print help info.
--zabbix-server|-z)
Hostname or HOSTNAME address of Zabbix server(default=172.16.35.92).
--url|-u)
php-fpm status default URL(default:http://127.0.0.1:80/pm_status).
Example:
./$0 -z 10.10.253.1 -u http://localhost:80/pm_status
EOF
}

while test -n "$1"; do
case "$1" in
-z|--zabbix-server)
ZABBIX_SERVER=$2
shift 2
;;
-u|--url)
URL=$2
shift 2
;;
-h|--help)
usage
exit
;;
*)
echo "Unknown argument: $1"
usage
exit
;;
esac
done

# Get localhost intranet ip
#HOSTNAME=$(/sbin/ifconfig | grep addr: | grep -E "10\.|172\.16" | awk -F\: '{print $2}' | cut -d' ' -f 1)
HOSTNAME=`hostname`

# save the nginx stats in a variable for future parsing
$WGET -q $URL -O - 2 > $PHP_FPM_STATS

# error during retrieve
if [ -z "$PHP_FPM_STATS" -o -z "$HOSTNAME" ]; then
echo $ERROR_DATA
exit 1
fi

# Extract data from php-fpm stats
accepted_conn=$(cat $PHP_FPM_STATS | /bin/grep "^accepted conn:" | awk -F\: '{print $2}')
listen_queue=$(cat $PHP_FPM_STATS | /bin/grep "^listen queue:" | awk -F\: '{print $2}')
max_listen_queue=$(cat $PHP_FPM_STATS | /bin/grep "^max listen queue:" | awk -F\: '{print $2}')
listen_queue_len=$(cat $PHP_FPM_STATS | /bin/grep "^listen queue len:" | awk -F\: '{print $2}')
idle_processes=$(cat $PHP_FPM_STATS | /bin/grep "^idle processes:" | awk -F\: '{print $2}')
active_processes=$(cat $PHP_FPM_STATS | /bin/grep "^active processes:" | awk -F\: '{print $2}')
total_processes=$(cat $PHP_FPM_STATS | /bin/grep "^total processes:" | awk -F\: '{print $2}')
max_active_processes=$(cat $PHP_FPM_STATS | /bin/grep "^max active processes:" | awk -F\: '{print $2}')
max_children_reached=$(cat $PHP_FPM_STATS | /bin/grep "^max children reached:" | awk -F\: '{print $2}')
slow_requests=$(cat $PHP_FPM_STATS | /bin/grep "^slow requests:" | awk -F\: '{print $2}')

/bin/cat > $TMP_FILE << EOF
$HOSTNAME accepted_conn $accepted_conn
$HOSTNAME listen_queue $listen_queue
$HOSTNAME max_listen_queue $max_listen_queue
$HOSTNAME listen_queue_len $listen_queue_len
$HOSTNAME idle_processes $idle_processes
$HOSTNAME active_processes $active_processes
$HOSTNAME total_processes $total_processes
$HOSTNAME max_active_processes $max_active_processes
$HOSTNAME max_children_reached $max_children_reached
$HOSTNAME slow_requests $slow_requests
EOF

$ZABBIX_SENDER -z $ZABBIX_SERVER -i $TMP_FILE

exit 0

###*/2 * * * * root /usr/local/zabbix/scripts/php-fpm_status_analyze.sh -z 10.10.253.1 -u http://127.0.0.1:56789/weimobphp00status > /dev/null 2>&1

zabbix php-fpm监控的更多相关文章

  1. zabbix模板化监控

    zabbix模板化监控 1. 实验简述 在zabbix监控中,有很多组的概念,具体有以下几种: 1. 主机和主机组,相同类型/应用的主机,可以归属于同一个主机组 2. item和application ...

  2. Zabbix 添加端口监控链接

    zabbix 添加端口监控 连接数: zabbix  配置  添加 监控项: 其他检测 方式也是 示例: zabbix 客户端配置文件添加: 编辑 zabbix_agentd.conf  添加  端口 ...

  3. zabbix实现自定义监控

    实现自定义监控项实例 .创建主机组 .创建主机 .创建监控项 .到需要监控的主机的agent中添加自定义的监控项目 cd /etc/zabbix/zabbix_agentd.d vi userpara ...

  4. zabbix使用jmx监控tomcat

    zabbix监控Tomcat/JVM实例性能(115) – 运维生存时间http://www.ttlsa.com/zabbix/zabbix-use-jmx-monitor-tomcat/ zabbi ...

  5. 24 Zabbix系统配置日志监控告警--关键字触发

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 24 Zabbix系统配置日志监控告警--关键字触发 trapper是被监控主机主动发送数据给za ...

  6. 给zabbix添加percona监控模板

    简单说明一下给zabbix添加的percona的监控模板. 在percona官方网站有说明怎么安装,这里记录下步骤.首先搭建好的zabbix环境. 监控插件连接 : 链接:https://pan.ba ...

  7. 16 利用Zabbix完成windows监控

    点击返回:自学Zabbix之路 16 利用Zabbix完成windows监控 1.安装zabbix_agentd 1.1.下载zabbix_agentd监控客户端软件安装包(windows操作系统客户 ...

  8. 17 利用Zabbix完成VMare监控

    点击返回:自学Zabbix之路 17 利用Zabbix完成VMare监控 最近在研究通过Zabbix监控VMware vSphere,Zabbix Documentation 3.0 从文档中我们看到 ...

  9. 自学Zabbix11.1 Zabbix 配置SNMP监控

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 自学Zabbix11.1 Zabbix 配置SNMP监控 1. 概述 zabbix采集数据方式: ...

  10. zabbix 配置SNMP监控

    什么是SNMP? 简单网络管理协议(SNMP),由一组网络管理的标准组成,包含一个应用层协议(application layer protocol).数据库模型(database schema)和一组 ...

随机推荐

  1. Java8 Lamda的基本使用

    Lamda的基本使用 https://www.cnblogs.com/htyj/p/10133883.html https://segmentfault.com/q/1010000011200292 ...

  2. (转)WEB页面导出为Word文档后分页&横向打印的方法

    <html>    <HEAD>        <title>WEB页面导出为Word文档后分页&横向打印的方法 </title>    < ...

  3. git commit 统计

    git log --author="username" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; lo ...

  4. Git基础和入门

    一.Git基础概念 Git功能简单概述 可以随时回滚到之前的代码版本(git reset --hard ): 协同开发时不会覆盖别人的代码(分支): 留下修改记录(git log): 发版时可以方便的 ...

  5. FPM九:配置FPM Launchpad

    1.事物代码LPD_CUST,点击新建输入角色和实例保存. 2.新建文件夹: 3.新建应用程序 这样一个菜单的LAUNCHPAD就好了. 4.FPM_WB运行FPM工作台,新建OVP应用程序. 保存本 ...

  6. logger(一)slf4j简介及其实现原理

    一.slf4j简介 slf4j(Simple logging facade for Java)是对所有日志框架制定的一种规范.标准.接口,并不是一个框架的具体的实现,因为接口并不能独立使用,需要和具体 ...

  7. linux软连接和硬链接(总结)

    参考博客: https://www.cnblogs.com/fengdejiyixx/p/10821820.html https://www.runoob.com/linux/linux-comm-l ...

  8. python-job

  9. MySQL数据库(五)--用户管理、pymysql模块

    一.用户管理(权限管理) 在MySQL中自带的mysql数据库中有4个表用于用户管理的 # 优先级从高到低 user > db > tables_priv > columns_pri ...

  10. Linux文件服务管理之vsftpd

    简介 vsftpd是 "very secure FTP deamon"的缩写,是一个完全免费,开源的ftp服务器软件. 特点 小巧轻快,安全易用,支持虚拟用户.支持带宽限制等功能. ...