tideways php,Tideways+Xhgui搭建非侵入式php监控平台

Tideways+Xhgui搭建非侵入式php监控平台

参考文档:

windows平台可以参考:

搭建流程:

1. 安装mongodb,以及php-mongodb拓展

mongodb版本需要为3.4,否则会有bug

安装mongodb

下载安装包:mongodb-linux-x86_64-rhel62-v3.4-latest.tgz

安装:

tar zxf mongodb-linux-x86_64-rhel62-v3.4-latest.tgz

mv mongodb-linux-x86_64-rhel62-3.4.14-17-ge7da78c3b6 /usr/local/mongodb

mkdir /usr/local/mongodb/data

mkdir /usr/local/mongodb/logs

启动mongod:

cd /usr/local/mongodb/bin

./mongod --fork --dbpath=/usr/local/mongodb/data --logpa th=/usr/local/mongodb/logs/mongodb2.log --logappend

安装mongodb的php拓展

下载源码包:mongodb-1.1.9.tgz

解压:

tar -zxf mongodb-1.1.9.tgz

进入mongodb拓展目录,编译安装拓展

cd mongodb-1.1.9/

phpize

./configure --with-php-config=/usr/local/php/bin/php-config

make && make install

修改php.ini文件

vi /usr/local/php/lib/php.ini

添加mongodb.so扩展配置,保存退出

extension=mongodb.so

2. 安装tideways扩展

下载安装包:

wget -Otideways-php.tar.gz "https://s3-eu-west-1.amazonaws.com/tideways/extension/4.1.5/tideways-php-4.1.5-x86_64.tar.gz"

安装扩展:

tar xzvf tideways-php.tar.gz

cd tideways-php

bash install.sh

修改php.ini

vi /usr/local/php/lib/php.ini

添加tideways扩展

extension=tideways.so

3. 安装tideways-daemon

下载安装包:

wget -Otideways-daemon.tar.gz "https://s3-eu-west-1.amazonaws.com/tideways/daemon/1.5.19/tideways-daemon_linux_amd64-1.5.19.tar.gz"

安装:

tar xzvf tideways-daemon.tar.gz

cd tideways-daemon

bash install.sh

4. 安装xhgui

在有网络的情况下从git拉取xhgui源代码,并且进行安装

git clone https://github.com/laynefyc/xhgui-branch.git

cd xhgui-branch

php install.php

安装会使用composer,如果没有网络的情况下,需要将带有vender文件夹的所有代码文件拷贝到对应的web目录。

有可能需要修改文件夹权限使其能够被访问

修改 $webroot/xhgui-branch/config/config.default.php 文件的配置

配置扩展类型修改为tideways

/*

* support extension: uprofiler, tideways_xhprof, tideways, xhprof

* default: xhprof

*/

'extension' => 'tideways',

配置需要抓取的server,port等参数来过滤不同的站点

// Profile 1 in 100 requests.

// You can return true to profile every request.

'profiler.enable' => function() {

if($_SERVER['SERVER_NAME'] == 'localhost') {

return false;

}

return true;//rand(1, 100) === 42;

},

上方代码中返回false表示不抓取信息,否则抓取请求信息

5. 测试MongoDB连接情况并优化索引

进入mongodb命令环境:

cd /usr/local/mongodb/bin

./mongo

连接成功后优化索引:

> use xhprof

> db.results.ensureIndex( { 'meta.SERVER.REQUEST_TIME' : -1 } )

> db.results.ensureIndex( { 'profile.main().wt' : -1 } )

> db.results.ensureIndex( { 'profile.main().mu' : -1 } )

> db.results.ensureIndex( { 'profile.main().cpu' : -1 } )

> db.results.ensureIndex( { 'meta.url' : 1 } )

6. 配置nginx

nginx配置主要是配置xhgui的虚拟服务器,配置可以参考:

server {

listen 9066;

server_name 192.168.202.106;

fastcgi_buffer_size 8k;

fastcgi_buffers 8 32k;

proxy_buffer_size 8k;

proxy_buffers 8 32k;

root /var/www/html/xhgui-branch/webroot;

location / {

index index.php;

if (!-e $request_filename) {

rewrite . /index.php last;

}

}

location ~ ^(.+\.php)(.*)$ {

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_split_path_info ^(.+\.php)(.*)$;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_param PATH_INFO $fastcgi_path_info;

fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;

include fastcgi_params;

}

}

端口,服务名,web路径等可以根据实际修改

7. 配置tideways参数

可以通过两种方式配置tideways参数,这里采用配置php.ini文件的方式

打开php.ini文件

vi /usr/local/php/lib/php.ini

在末尾添加

;不需要自动加载,在程序中控制就行

tideways.auto_prepend_library=0

;频率设置为100,在程序调用时能改

tideways.sample_rate=100

;设置调用时预加载的文件

auto_prepend_file="/var/www/html/xhgui-branch/external/header.php"

上述设置预加载文件为全局设置,站点的过滤需要通过第4步中的配置文件来进行配置。如果需要针对站点进行设置,可以再nginx的配置文件中找到需要进行性能分析的站点,对配置进行如下修改:

server {

listen 80;

server_name site.xxx;

root /var/www/html/xxx;

#新增一条配置

fastcgi_param PHP_VALUE "/var/www/html/xhgui-branch/external/header.php";

...

...

...

}

这个方法对共用同一个php-fpm时可能会产生问题,具体可以参考

8. 重启php-fpm和nginx

service php-fpm reload

/usr/bin/nginx -s reload

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值