php apc监控,zabbix监控PHP APC缓存

zabbix监控PHP APC缓存

发布时间:2020-06-20 09:51:16

来源:51CTO

阅读:967

作者:自由linux

参考文章

http://john88wang.blog.51cto.com/2165294/1579158

https://github.com/zbal/zabbix/blob/master/scripts/zabbix_php-apc_check.sh

1.监控原理

将APC源码包中的apc.php放到/usr/local/bin/ 目录下

添加nginx子配置文件php-apc_status.confserver

{

listen      80;

server_name 127.0.0.1;

access_log  off;

client_max_body_size 5m;

autoindex off;

location / {

root  /usr/local/zabbix/bin/;

index index.php;

autoindex off;

}

location ~ \.php$ {

root           /usr/local/zabbix/bin/;

fastcgi_pass   127.0.0.1:9000;

fastcgi_index  index.php;

fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;

include        fastcgi_params;

}

}

通过links这个命令可以在命令行下方为HTML页面

links 127.0.0.1/apc.php -dump 2>/dev/null

如果没有这个命令可以用过yum -y install links 安装

2.编写PHP-APC状态信息获取脚本

php-apc_status.sh#!/bin/bash

#This script is used to get php apc cache data from  apc.php page

#you need put nginx sub-config file php-apc_status.conf under conf/conf.d/ directory

apc_metric=$1

apc_status_url="http://127.0.0.1/apc.php"

apc_status_file=/tmp/php-apc_status.txt

/usr/bin/links $apc_status_url -dump 2>/dev/null > $apc_status_file

#echo $apc_status

#we need to convert GBytes,Mbytes,KBytes to Bytes

#echo "308.345 * 1024 * 1024 * 1024"|bc|cut -f1 -d.

#331082922721

convert_size() {

value=$1

unit=$2

echo $value | grep -E '^[0-9.]+$' 2>&1 > /dev/null

if [ $? -ne 0 ]; then

echo "$value is not number"

exit 1

fi

case $unit in

Bytes)

echo "$value"

;;

KBytes)

echo "$value * 1024" | bc | cut -f1 -d.

;;

MBytes)

echo "$value * 1024 * 1024" | bc | cut -f1 -d.

;;

GBytes)

echo "$value * 1024 * 1024 * 1024" | bc | cut -f1 -d.

;;

esac

}

#get apc metric data

case $apc_metric in

version)

cat $apc_status_file|grep "APC Version"|awk '{print $3}'

;;

cached_files_count)

cat $apc_status_file|grep "Cached Files"|head -1|awk '{print $3}'

;;

cached_files_size)

convert_size   $(cat $apc_status_file|grep "Cached Files"|awk '{print $4 " " $5}'|sed -e 's/(//' -e 's/)//')

;;

hits)

cat $apc_status_file|grep  "Hits"|head -1|awk '{print $2}'

;;

phits)

cat $apc_status_file|grep "Free"|head -1|awk '{print $7}'|sed -e 's/(//' -e s'/)//' -e 's/%//'

;;

misses)

cat $apc_status_file|grep  "Misses"|head -1|awk '{print $2}'

;;

request_rate)

cat $apc_status_file|grep  "Request Rate"|head -1|awk '{print $5}'

;;

hit_rate)

cat $apc_status_file|grep "Hit Rate"|head -1|awk '{print $3}'

;;

miss_rate)

cat $apc_status_file|grep "Miss Rate"|head -1| awk '{print $3}'

;;

insert_rate)

cat $apc_status_file|grep "Insert Rate"|head -1| awk '{print $3}'

;;

cache_full_count)

cat $apc_status_file|grep "Cache full count"|head -1|awk '{print $4}'

;;

shm_size)

#apc.shm_size can be 400M or 2G , convert M or G to Bytes

shm=$(cat $apc_status_file|grep "apc.shm_size"|head -1| awk '{print $2}')

if [ $(echo "$shm"|grep 'M$') ];then

size=$(echo $shm|sed 's/M//')

echo "$size * 1024 * 1024"|bc

elif [ $(echo "$shm"|grep 'G$') ];then

size=$(echo $shm|sed 's/G//')

echo "$size * 1024 * 1024 * 1024"|bc

fi

;;

mem_free)

convert_size $(cat $apc_status_file|grep "Free"|head -1|awk '{print $2 " " $3}')

;;

mem_used)

convert_size $(cat $apc_status_file|grep "Used"|head -1|awk '{print $2 " " $3}')

;;

mem_pused)

cat $apc_status_file|grep "Used"|head -1|awk '{print $4}'|sed -e 's/(//' -e 's/)//' -e 's/%//'

;;

fragmentation)

cat $apc_status_file|grep "Fragmentation:"|head -1|awk '{print $2}'|sed -e 's/%//'

;;

*)

echo "please input the right parameter"

;;

esac

3.添加zabbix 子配置文件php-apc_status_zabbix.confUserParameter=php-apc[*],/usr/local/zabbix/bin/php-apc_status.sh $1

4.创建zabbix的PHP-APC 模板

fe5ad5caf6948a62bc386f17d6ecdc83.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值