如果系统工作不正常或者没有数据,通常可以从日志里获取更多的信息来定位问题.
日志默认路径: /var/log/networkbench/
汇总进程日志: /var/log/networkbench/daemon.log
php扩展日志:/var/log/networkbench/php-agent.log
运行
ll /var/log/networkbench
正常情况下会存在2个日志( daemon.log 和php-agent.log)
1)如果php-agent.log不存在说明PHP扩展有问题, 请检查php扩展模块
2)如果daemon.log不存在说明汇总进程有问题, 请检查汇总进程
如果2个日志都存在说明安装没有问题,请运行
grep -E 'CRITICAL|ERROR|error' /var/log/networkbench/php-agent.log
如果php-agent输出有ERROR信息,说明PHP扩展运行时有错误
grep -E 'CRITICAL|ERROR|error' /var/log/networkbench/daemon.log
如果daemon输出有ERROR信息,说明可能和服务器通信有问题
默认情况,日志级别为info, 审计模式是关闭的,这种情况得到的信息量比较小.
通过修改日志级别为debug,开启审计模式,让汇总进程和php扩展输出更多日志信息,通过日志得到的信息定位问题.
将info.php放在网站某个目录下
echo "<?php phpinfo(); ?>" > /path/to/info.php
通过浏览器访问info.php
查找页面内是否存在networkbench扩展
正常情况下的信息和以下截图类似
若没有networkbench模块信息,请重新安装扩展模块。
重新安装后, 如果仍未出现networkbench模块信息,则很有可能您的php版本不符合安装条件.
确认汇总进程文件是否存在
ll /usr/bin/networkbench
如果 /usr/bin/networkbench 不存在,说明被误删了,请重新安装探针
确认汇总进程在运行:
ps -e | grep networkbench
正常情况下的信息和以下截图类似:
如果networkbench进程不存在,请重启web server
sudo service httpd restart
或
sudo service php-fpm restart
然后再次运行 ps -e | grep networkbench
, 查看输出结果
安装RPM包时,出现 error: Failed dependencies
提示
[nb@localhost tmp]$ rpm -Uvh tingyun-agent-php-1.0.3.x86_64.rpm
error: Failed dependencies:
ld-linux-x86-64.so.2()(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
ld-linux-x86-64.so.2(GLIBC_2.3)(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
libc.so.6()(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
libc.so.6(GLIBC_2.2.5)(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
libc.so.6(GLIBC_2.3)(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
libc.so.6(GLIBC_2.3.2)(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
libc.so.6(GLIBC_2.4)(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
libdl.so.2()(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
libdl.so.2(GLIBC_2.2.5)(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
libgcc_s.so.1()(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
libgcc_s.so.1(GCC_3.0)(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
libgcc_s.so.1(GCC_3.3)(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
libgcc_s.so.1(GCC_4.2.0)(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
libm.so.6()(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
libpthread.so.0()(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
libpthread.so.0(GLIBC_2.2.5)(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
出现此提示的原因是您的操作系统为32位,但您尝试安装64位的RPM包,请更换为32位的RPM包。
安装安装BIN包时,提示 permission denied
error:unpacking of archive failed on file /usr/bin/networkbench: cpio:rename failed - permission denied
一般这种报错跟权限有关,大多是因为防火墙或一些安全类的软件,可以把相关安全软件关闭,再进行安装
运行networkbench-install.sh时,出现 PHP install path not found, please enter the path.
提示
PHP install path not found, please enter the path.
出现此提示的原因是在系统环境变量里面找不到php的安装路径,需要手工指定php的安装路径
录入php所在的文件夹路径,例如: php的位置是/opt/php5/bin/php,就录入/opt/php5/bin
运行networkbench-install.sh时,出现“The Networkbench agent is not installed.”提示
The Networkbench agent is not installed
PHP环境中缺少探针安装相关的必要信息,导致无法自动安装PHP扩展。
解决方法请参见:手动安装PHP扩展
运行networkbench-install.sh时,PHP版本选择步骤中,没有用户期望的PHP路径
Below is a list of the directories in which we found a copy of PHP
在系统环境变量里面找不到用户期望的PHP安装路径
解决方法:将此php的安装路径加入到PATH环境变量中,然后重新运行安装脚本
初次安装后需要一段时间才能看到数据,通常需要5分钟或更长时间,请多等一段时间
有的用户浏览器缓存有问题,即使有数据如果不强制刷新也可能看不到,请尝试清空缓存或强制刷新或更换浏览器
探针安装成功后,必须重启apache或php-fpm,否则探针不生效
请确认授权码是否正确
请确认web服务器有没有用户访问
探针数据是基于http请求的性能,如果没有访问,就不会有性能数据。
如果没有用户访问,请使用浏览器访问相应的应用,再过5分钟后查看报表
PHP探针都能采集哪些数据?
目前,探针可以采集php运行时的性能数据和错误信息。
性能数据包括:
* HTTP请求的总响应时间
* 从负载均衡服务器到web服务器的排队时间
* 数据库耗时
* NOSQL耗时
* web service耗时
* 超过阈值的性能瓶颈函数
* 慢sql语句及调用堆栈
错误信息包括:
* 数据库连接错误
* sql语法错误
* php语法错误
* php运行时未捕获的异常
* http状态码为4xx 5xx的错误
PHP探针都支持哪些组件的监控?
类型 | 支持的组件 | 说明 |
---|---|---|
HTTP | curl | |
HTTP | file_get_contents | |
HTTP | fopen | |
HTTP | HttpRequest | |
HTTP | Snoopy | |
HTTP | drupal_http_request | |
HTTP | Zend_HTTP_Client | |
RPC thrift | thrift client端 | 不支持thrift server端 |
Database | MySQL old native driver | |
Database | MySQLi Extension | |
Database | Oracle(oci8) | |
Database | PDO | |
Database | Postgres(pgsql ) | |
Database | MongoDB | |
Database | Mongo | |
Database | SQLite | |
Database | SQLite3 | |
Cache | Memcache | |
Cache | Memcached | |
Cache | Redis | |
Cache | Predis | |
Web Service | SOAPClient | |
Web Service | NuSOAP | |
Framework | Drupal | |
Framework | WordPress | |
Framework | Zend | |
Framework | CodeIgniter | |
Framework | CakePHP | |
Framework | Joomla | |
Framework | Yii | |
Framework | PHPWind | |
Framework | ThinkPHP | |
Framework | Laravel | |
Framework | Discuz | |
Protocol | RabbitMQ client端 | 不支持server端 |
Protocol | ActiveMQ client端 | 不支持server端 |
我在多台服务器上部署了应用探针,报表查看时,如何将不同的应用区分开?
默认数据汇总在同一个应用,如果需要分开看,把配置文件内的 nbs.app_name 改为不同名称就可以了。
我在一台服务器上部署了多个Virtual Host,报表查看时,如何将不同的应用区分开?
把配置文件内的 nbs.auto_app_naming 修改为1或2 即可自动命名不同Virtual Host下的应用
服务器权限要求比较严格,无法在/usr下安装探针,怎么办?
可以使用BIN安装包指定安装路径, 假设您有 /home/tingyun 权限
./tingyun-agent-php-2.5.0.x86_64.bin -prefix=/home/tingyun
php探针对我们服务器的性能会有多大影响
听云server探针对服务器的性能影响小于3%