參考文章
創(chuàng)新互聯(lián)網(wǎng)站建設服務商,為中小企業(yè)提供成都網(wǎng)站設計、做網(wǎng)站服務,網(wǎng)站設計,網(wǎng)站托管、服務器租用等一站式綜合服務型公司,專業(yè)打造企業(yè)形象網(wǎng)站,讓您在眾多競爭對手中脫穎而出創(chuàng)新互聯(lián)。http://john88wang.blog.51cto.com/2165294/1579158
https://github.com/zbal/zabbix/blob/master/scripts/zabbix_php-apc_check.sh
1.監(jiān)控原理
將APC源碼包中的apc.php放到/usr/local/bin/ 目錄下
添加nginx子配置文件php-apc_status.conf
server { 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狀態(tài)信息獲取腳本
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" ;; esac3.添加zabbix 子配置文件php-apc_status_zabbix.conf
UserParameter=php-apc[*],/usr/local/zabbix/bin/php-apc_status.sh $14.創(chuàng)建zabbix的PHP-APC 模板
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。